使用文件夹在 Amazon S3 控制台中整理对象 - Amazon Simple Storage Service

使用文件夹在 Amazon S3 控制台中整理对象

在 Amazon S3 中,存储桶和对象是主要资源,并且对象存储在存储桶中。Amazon S3 具有扁平结构,而不是类似于您在文件系统中看到的层次结构。不过,为了实现组织简易性,Amazon S3 控制台支持将文件夹概念作为对象分组手段。控制台通过为分组对象使用共享名称前缀来实现此目的。换句话说,分组对象的名称以一个公用字符串开头。这个公用字符串或共享前缀是文件夹名称。对象名称也称为键名称

例如,您可以在控制台中创建名为 photos 的文件夹,并在其中存储名为 myphoto.jpg 的对象。随后,将使用键名 photos/myphoto.jpg 存储对象,其中 photos/ 为前缀。

以下是另外两个示例:

  • 如果您的存储桶中有三个对象:logs/date1.txtlogs/date2.txtlogs/date3.txt,则控制台会显示名为 logs 的文件夹。如果您在控制台中打开该文件夹,将看到三个对象:date1.txtdate2.txtdate3.txt

  • 如果您有名为 photos/2017/example.jpg 的对象,则控制台会显示名为 photos 的文件夹,其中包含文件夹 2017。文件夹 2017 将包含对象 example.jpg

文件夹中可以有文件夹,但存储桶中不能有存储桶。可以直接将对象上传和复制到一个文件夹中。可以创建和删除文件夹以及将文件夹设为公用,但不能对文件夹进行重命名。可以将对象从一个文件夹复制至另一个文件夹。

重要

当您在 Amazon S3 中创建文件夹时,S3 会使用设置为您提供的文件夹名称的密钥创建一个 0 字节对象。例如,如果在存储桶中创建一个名为 photos 的文件夹,Amazon S3 控制台将使用键 photos/ 创建一个 0 字节的对象。控制台创建这个对象是为了支持文件夹的概念。

对于将正斜杠 (/) 字符作为键名称中的最后一个(尾部)字符的所有对象(例如 examplekeyname/),Amazon S3 控制台将其视为文件夹。您无法使用 Amazon S3 控制台上传键名称中有尾部 / 字符的对象。但是,通过使用 AWS Command Line Interface(AWS CLI)、AWS SDK 或 REST API,您可以利用 Amazon S3 API 上传名称中有尾部 / 的对象。

名称中有尾部 / 的对象显示为 Amazon S3 控制台中的文件夹。Amazon S3 控制台不为此类对象显示内容和元数据。当使用控制台复制名称中有尾部 / 的对象时,将在目标位置创建一个新文件夹,但不会复制对象的数据和元数据。

创建文件夹

本部分介绍如何使用 Amazon S3 控制台创建文件夹。

重要

如果存储桶策略阻止在没有标签、元数据或访问控制列表(ACL)被授权者的情况下将对象上传到此存储桶,则您无法使用以下过程创建文件夹。而应改为上传空文件夹,并在上传配置中指定以下设置。

如何创建文件夹
  1. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. Buckets(存储桶) 列表中,请选择要在其中创建文件夹的存储桶的名称。

  4. 如果存储桶策略禁止在不加密的情况下将对象上传到此存储桶,则必须在 Server-side encryption(服务器端加密)下选择 Enable(启用)。

  5. 请选择 Create folder(创建文件夹)。

  6. 输入文件夹的名称(例如,favorite-pics)。然后选择 Create folder(创建文件夹)。

将文件夹设为公用

我们建议禁止所有对 Amazon S3 文件夹和存储桶的公有访问,除非您特别需要公有文件夹或存储桶。当您将文件夹设为公有时,Internet 上的任何人都可以查看该文件夹中分组的所有对象。

在 Amazon S3 控制台中,您可以将文件夹设为公有。您还可以通过创建存储桶策略来将文件夹设为公有,该策略通过前缀限制数据访问权限。有关更多信息,请参阅Amazon S3 中的 Identity and Access Management

警告

在 Amazon S3 控制台中将文件夹设为公有后,就不能再将其设为私有。而是必须对公有文件夹中的每个单独的对象设置权限,以使对象不具备公有访问。有关更多信息,请参阅配置 ACL

计算文件夹大小

本节介绍如何使用 Amazon S3 控制台计算文件夹的大小。

计算文件夹的大小
  1. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. Buckets(存储桶)列表中,选择在其中存储文件夹的存储桶的名称。

  4. Objects(对象)列表中,选中文件夹名称旁边的复选框。

  5. 选择 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 清单和 Amazon S3 Select 作为替代方案。首先,创建 S3 清单配置,以在清单报告中包含大型文件夹中每个对象的大小元数据。交付第一份 S3 清单报告可能需要长达 48 小时。发布清单报告后,使用 S3 Select SUM 表达式查询清单报告,以聚合文件夹中对象的大小。有关更多信息,请参阅 使用 S3 控制台配置清单SUM 示例

删除文件夹

本节介绍如何使用 Amazon S3 控制台从 S3 存储桶中删除文件夹。

有关 Amazon S3 特征和定价的信息,请参阅 Amazon S3

要从 S3 存储桶中删除文件夹
  1. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. Buckets(存储桶) 列表中,请选择要从中删除文件夹的存储桶的名称。

  3. Objects(对象)列表中,选中您要删除的文件夹和对象旁的复选框。

  4. 请选择 Delete

  5. Delete objects (删除对象) 页面上,验证是否已列出选择删除的文件夹的名称。

  6. Delete objects (删除对象) 框中,输入 delete,然后选择 Delete objects (删除对象)

警告

此操作将删除所有指定的对象。删除文件夹时,请等待删除操作完成,然后再将新对象添加到文件夹。否则,新对象也可能会被删除。