如何在S3中使用Boto3一次创建存储桶和多个子文件夹?

时间:2018-07-31 15:11:43

标签: python-3.x amazon-s3 boto3 bucket

我可以使用顶层创建一个目录

s3.create_bucket(Bucket=bucket_name)

我想创建一个新的存储桶和子文件夹,所以我的目录结构如下:

-top_level_bucket
    -sub_folder
        -sub_sub_folder

如果不存在,我想做这样的事情立即创建所有内容:

path = 'top_level_bucket/sub_folder/sub_sub_folder'
s3.create_bucket(Bucket=path)

这可能吗?

1 个答案:

答案 0 :(得分:1)

Amazon S3中没有“子桶”的概念。

Amazon S3实际上是一种平面对象存储服务。它不使用目录

相反,文件是通过路径上传的,例如:

aws s3 cp file.txt s3://my-bucket/bob/files/file.txt

对象的全名将是:bob/files/file.txt

看起来和表现就像存在目录,但实际上它们并不存在。实际上,您可以运行上面的命令,它将自动“创建” bobfiles目录,但是它们实际上并不存在!如果删除对象,则这些目录将消失(因为它们实际上从未存在!)。

底线:即使存储桶不存在,也可以将文件上传到任意位置。不必担心预先创建文件夹结构。