web-dev-qa-db-ja.com

Python、boto3を使用してAmazon S3にディレクトリを作成する

ストレージがフラットであるため、S3バケットには実際にはディレクトリがありません。しかし、python/boto3を使用してプログラムでディレクトリを作成することは可能ですが、方法はわかりません。ドキュメンタリーでこれを見た:

"S3ストレージはフラットですが、バケットにはキーが含まれていますが、S3では、キーに区切り文字を使用して、バケットにディレクトリツリー構造を強制できます。たとえば、キーに「a/b/f」という名前を付けた場合、区切り文字として「/」を使用すると、S3は「a」がディレクトリ、「b」が「a」のサブディレクトリ、「f」が「b」内のファイルであると見なします。 "

S3バケットにファイルだけを作成できます。

    self.client.put_object(Bucket=bucketname,Key=filename)

しかし、ディレクトリの作成方法がわかりません。

15
Steve Ritz

スラッシュを追加する/キー名の最後まで、ディレクトリを作成するのがうまくいきませんでした:

client.put_object(Bucket="foo-bucket", Key="test-folder/")

ディレクトリを作成するには、Bodyパラメータを指定する必要があります。

client.put_object(Bucket='foo-bucket',Body='', Key='test-folder/')

出典: boto3の問題のryantuck

0
azzamsa