S3cmdを使用してファイルをS3サーバーにアップロードしています。私の問題は、サーバー上のディレクトリが存在しない場合、アップロードが失敗することです。フォルダーが存在しない場合、フォルダーを作成するようにs3cmdに指示するにはどうすればよいですか? PHPを使用しています。
s3cmd put file.jpg s3://bucket/folder/file.jpg
。
S3にはディレクトリの概念はなく、全体のfolder/file.jpg
はファイル名です。 GUIツールなどを使用して、フォルダー内からfile.jpgを削除した場合、おそらくフォルダーもなくなっていることがわかります。ディレクトリによる視覚表現は、ユーザーの便宜のためです。
これは、フォルダーs3cmd put foobar s3:// bucket_name/new_directory /を作成する方法です
確認する-s3cmd la
ファイルをアップロードしたくない場合は、s3ツールがフォルダーをマークするために作成する特別な$ folder $オブジェクトをコピーできます。
s3cmd cp 's3://bucket/parent_$folder$' 's3://bucket/parent/child_$folder$'
「子」「フォルダ」を作成します。
代わりに子の場所に何かをアップロードするほうが混乱が少なくなります。
s3cmd put dummy s3://bucket/parent/child/dummy
Hiveは、外部テーブルを作成するときに完全なS3パスが存在することを要求するようです。それが私がこの質問を見ている理由です:)