本指南不再进行更新。有关当前信息和说明,请参阅新的 Amazon S3 用户指南。
如何在 S3 存储桶中使用文件夹?
在 Amazon S3 中,存储桶和对象是主要资源,并且对象存储在存储桶中。Amazon S3 具有扁平结构,而不是类似于您在文件系统中看到的层次结构。不过,为了实现组织简易性,Amazon S3 控制台支持将文件夹概念作为对象分组手段。Amazon S3 通过为对象(即名称以通用字符串开头的对象)使用共享名称前缀来实现这一点。对象名称也称为键名称。
例如,您可以在控制台中创建名为 photos
的文件夹,并在其中存储名为 myphoto.jpg
的对象。随后,将使用键名 photos/myphoto.jpg
存储对象,其中 photos/
为前缀。
以下是另外两个示例:
-
如果您的存储桶中有三个对象
logs/date1.txt
、logs/date2.txt
和logs/date3.txt
,则控制台会显示名为logs
的文件夹。如果您在控制台中打开该文件夹,将看到三个对象:date1.txt
、date2.txt
和date3.txt
。 -
如果您有名为
photos/2017/example.jpg
的对象,则控制台会显示名为photos
的文件夹,其中包含文件夹2017
和对象example.jpg
。
文件夹中可以有文件夹,但存储桶中不能有存储桶。可以直接将对象上传和复制到一个文件夹中。可以创建和删除文件夹以及将文件夹设为公用,但不能对文件夹进行重命名。可以将对象从一个文件夹复制至另一个文件夹。
-
Amazon S3 控制台通过创建以文件夹前缀和分隔符值作为键的零字节对象来实现文件夹对象创建。这些文件夹对象不会显示在控制台中。否则,它们的行为与任何其他对象一样,可以通过 REST API、AWS CLI 和 AWS 开发工具包进行查看和操作。
-
对于将正斜杠“/”字符作为键名称中的最后一个(尾部)字符的所有对象(例如
examplekeyname/
),Amazon S3 控制台将其视为文件夹。您无法使用 Amazon S3 控制台上传键名称中有尾部“/”字符的对象。但是,通过使用 AWS CLI、AWS 开发工具包或 REST API,您可以利用 Amazon S3 API 上传名称中有尾部“/”的对象。 -
名称中有尾部“/”的对象显示为 Amazon S3 控制台中的文件夹。Amazon S3 控制台不为此类对象显示内容和元数据。当使用控制台复制名称中有尾部“/”的对象时,将在目标位置创建一个新文件夹,但不会复制对象的数据和元数据。