使用文件夹在 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
。文件夹2017
将包含对象example.jpg
。
文件夹中可以有文件夹,但存储桶中不能有存储桶。可以直接将对象上传和复制到一个文件夹中。可以创建和删除文件夹以及将文件夹设为公用,但不能对文件夹进行重命名。可以将对象从一个文件夹复制至另一个文件夹。
当您使用 Amazon S3 控制台创建文件夹时,Amazon S3 会使用设置为您提供的文件夹名称的密钥创建一个 0 字节对象。例如,如果在存储桶中创建一个名为 photos
的文件夹,Amazon S3 控制台将使用键 photos/
创建一个 0 字节的对象。控制台创建这个对象是为了支持文件夹的概念。
对于将正斜杠 (/
) 字符作为键名称中的最后一个(尾部)字符的所有对象(例如 examplekeyname/
),Amazon S3 控制台将其视为文件夹。您无法使用 Amazon S3 控制台上载键名称中有尾部 /
字符的对象。但是,通过使用 Amazon CLI、Amazon 软件开发工具包或 REST API,您可以利用 Amazon S3 API 上载名称中有尾部 /
的对象。
名称中有尾部 /
的对象显示为 Amazon S3 控制台中的文件夹。Amazon S3 控制台不为此类对象显示内容和元数据。当使用控制台复制名称中有尾部 /
的对象时,将在目标位置创建一个新文件夹,但不会复制对象的数据和元数据。
创建文件夹
本部分介绍如何使用 Amazon S3 控制台创建文件夹。
如果存储桶策略阻止在没有标签、元数据或访问控制列表 (ACL) 被授权者的情况下将对象上传到此存储桶,则您将无法使用此配置创建文件夹。请改为上传空文件夹并在上传配置中指定这些设置。
如何创建文件夹
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Buckets(存储桶) 列表中,请选择要在其中创建文件夹的存储桶的名称。
-
如果存储桶策略禁止在不加密的情况下将对象上传到此存储桶,则必须在 Server-side encryption(服务器端加密)下选择 Enable(启用)。
-
请选择 Create folder(创建文件夹)。
-
输入文件夹的名称(例如,
favorite-pics
)。然后选择 Create folder(创建文件夹)。
将文件夹设为公用
我们建议禁止所有对 Amazon S3 文件夹和存储桶的公有访问,除非您特别需要公有文件夹或存储桶。当您将文件夹设为公有时,Internet 上的任何人都可以查看该文件夹中分组的所有对象。
在 Amazon S3 控制台中,您可以将文件夹设为公有。您还可以通过创建存储桶策略来将文件夹设为公有,该策略通过前缀限制访问。有关更多信息,请参阅Amazon S3 中的 Identity and Access Management。
在 Amazon S3 控制台中将文件夹设为公有后,就不能再将其设为私有。而是必须对公有文件夹中的每个单独的对象设置权限,以使对象不具备公有访问。有关更多信息,请参阅配置 ACL。
计算文件夹大小
本节介绍如何使用 Amazon S3 控制台计算文件夹的大小。
计算文件夹的大小
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择存储桶。
-
在 Buckets(桶)列表中,选择在其中存储文件夹的桶的名称。
-
在 Objects(对象)列表中,选中文件夹名称旁边的复选框。
-
选择 Actions(操作),然后选择 Calculate total size(计算总大小)。
在您导航离开该页面后,文件夹信息将不再可用。
当您对桶中的指定对象或文件夹使用 Calculate total size(计算总大小)操作时,Amazon S3 会计算对象总数和总存储大小。但是,在对象总数或总大小中并不计算未完成或正在进行的分段上传以及以前或非当前的版本。此操作仅针对存储在桶中的每个对象的当前或最新版本计算对象总数和总大小。
例如,如果桶中有某个对象的两个版本,则 Amazon S3 中的存储计算器仅将它们计为一个对象。因此,在 Amazon S3 控制台中计算的对象总数可能不同于 S3 Storage Lens 中显示的 Object Count(对象计数)指标以及 Amazon CloudWatch 指标 NumberOfObjects
报告的数量。同样,总存储大小也可能不同于 S3 Storage Lens 中显示的 Total Storage(总存储)指标和 CloudWatch 中显示的 BucketSizeBytes
指标。
删除文件夹
本节介绍如何使用 Amazon S3 控制台从 S3 存储桶中删除文件夹。
有关 Amazon S3 功能和定价的信息,请参阅 Amazon S3
要从 S3 存储桶中删除文件夹
-
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Buckets(存储桶) 列表中,请选择要从中删除文件夹的存储桶的名称。
-
在 Objects(对象)列表中,选中您要删除的文件夹和对象旁的复选框。
-
选择 Delete(删除)。
-
在 Delete objects (删除对象) 页面上,验证是否已列出选择删除的文件夹的名称。
-
在 Delete objects (删除对象) 框中,输入
delete
,然后选择 Delete objects (删除对象)。
此操作将删除所有指定的对象。删除文件夹时,请等待删除操作完成,然后再将新对象添加到文件夹。否则,新对象也可能会被删除。