Amazon S3 boto - 如何创建文件夹?

165

如何使用boto库在Amazon s3中创建存储桶下的文件夹?

我按照手册创建了密钥、权限和元数据等,但是在boto的文档中没有描述如何在存储桶中创建文件夹,或在存储桶的文件夹下创建文件夹。


似乎Amazon S3没有文件夹的概念,有人建议创建名称为“folder/test.txt”的键来解决这个问题。我尝试使用Firefox S3插件创建文件夹,并在Boto中列出所有键,它将我刚创建的文件夹输出为“<Key:vitoshares,everyone_$folder$>”,那么我该如何查看/添加/修改此文件夹中的内容? - vito huang
注意:AWS S3管理界面创建“文件夹”的选项不兼容S3FS,即使用接口创建“文件夹”,并尝试通过S3FS挂载点获取所述文件夹的列表。 - jldupont
注意2:通过S3FS创建“文件夹”与AWS S3管理界面兼容。 - jldupont
请参考@JaHax下面的答案,了解如何使用Boto完成此操作。非常简单! - e.thompsy
13个回答

0

这个问题更加关乎未来,因此添加此更新。 我正在使用如下所示的upload_file方法。

fold ='/my/system/filePath/tabmcq/Tables/auto/18.tsv'
s3_client.upload_file(
            Filename = full/file/path/filename.extension,
            Bucket = "tab-mcq-de",
            Key = f"{fold.split('/')[-3]}/{fold.split('/')[-2]}/{fold.split('/')[-1]}"
    )

这里的想法是"Filename"参数需要您系统的绝对文件路径。 "Key"参数需要源目录相对文件路径,即您的文件所在位置

以此示例为例,关键参数必须包含"Tables/auto/18.tsv"值,以便客户创建文件夹。

希望这可以帮助您。


0

显然,您现在可以在S3中创建文件夹。我不确定从什么时候开始,但我有一个位于“标准”区域的存储桶,并且可以从操作下拉菜单中选择创建文件夹。


0
S3没有文件夹结构,但有所谓的keys。
我们可以创建/2013/11/xyz.xls,并且在控制台中显示为文件夹。但是S3存储部分会将其视为文件名。
即使在检索时,我们也可以通过使用ListObjects方法和使用Prefix参数来查看特定文件夹(或key)中的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接