Amazon S3的行为似乎存在一些不一致。 如果在桶中a" Bucket1",我创建文件夹" Folder1"并上传文件说" sample.txt"进去。接下来我删除这个文件。在桶级别,我可以看到" Folder1"在S3控制台上。 如果我上传文件" Folder2 / sample.txt"现在在同一个桶中然后删除sample.txt文件,然后Folder2也会从控制台中消失?
为何这种不一致? AFAIK我们没有任何API可以在SDK级别创建/删除文件夹。
我在这里遗漏了什么或这是一个实际问题吗?
提前感谢您的帮助。
答案 0 :(得分:2)
A"文件夹"在S3中只是一个0字节的对象,在键名的末尾有一个/
字符。
因此,使用AWS CLI或SDK,您可以创建一个文件夹" by" put"符合这些标准的对象。
AWS管理控制台还可以执行额外操作:它可以模拟文件夹,即使文件夹未显式创建也是如此。因此,如果您将对象上传为" Folder2 / sample.txt",则会外推并模拟" Folder2 /"在父文件夹级别。您可以使用delimiter
参数使用CLI / SDK自行完成此操作。
当你删除那个对象时,因为" Folder2"实际上并不存在作为以/
结尾的0字节对象(参见第一段),然后" Folder2 /"从管理控制台中消失。