

# 使用文件夹在 Amazon S3 控制台中整理对象
<a name="using-folders"></a>

在 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 控制台中创建文件夹时，S3 将创建一个 0 字节对象。此对象键设置为您提供的文件夹名称加上尾随的正斜杠 (`/`) 字符。例如，在 Amazon S3 控制台中，如果您在存储桶中创建一个名为 `photos` 的文件夹，Amazon S3 控制台将使用键 `photos/` 创建一个 0 字节的对象。控制台创建这个对象是为了支持文件夹的概念。  
此外，任何使用尾部正斜杠字符 (`/`) 命名的预先存在的对象都将显示为 Amazon S3 控制台中的文件夹。例如，具有键名称 `examplekeyname/` 的对象在 Amazon S3 控制台中显示为文件夹，而不显示为对象。否则，其行为与任何其它对象一样，可以通过 AWS Command Line Interface（AWS CLI）、AWS SDK 或 REST API 进行查看和操作。此外，您无法使用 Amazon S3 控制台上传键名称中有尾部正斜杠字符 (`/`) 字符的对象。但是，通过使用 AWS Command Line Interface（AWS CLI）、AWS SDK 或 REST API，可以上传名称中有尾部正斜杠字符 (`/`) 的对象。  
此外，Amazon S3 控制台不像对待其它对象那样显示文件夹对象的内容和元数据。当使用控制台复制名称中有尾部正斜杠字符 (`/`) 的对象时，将在目标位置创建一个新文件夹，但不会复制对象的数据和元数据。此外，对象键名称中的正斜杠 (`/`) 可能需要特殊处理。有关更多信息，请参阅 [为 Amazon S3 对象命名](object-keys.md)。

要在目录存储桶中创建文件夹，请上传文件夹。有关更多信息，请参阅 [将对象上传到目录存储桶](directory-buckets-objects-upload.md)。

**Topics**
+ [创建文件夹](#create-folder)
+ [将文件夹设为公用](#public-folders)
+ [计算文件夹大小](#calculate-folder)
+ [删除文件夹](#delete-folders)

## 创建文件夹
<a name="create-folder"></a>

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

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

**如何创建文件夹**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**通用存储桶**。

1. 在存储桶列表中，选择要在其中创建文件夹的存储桶的名称。

1. 在**对象**选项卡上，选择**创建文件夹**。

1. 输入文件夹的名称（例如，**favorite-pics**）。
**注意**  
文件夹名称受某些限制和准则的约束，并且被视为对象的对象键名称的一部分，该名称限制为 1024 字节。有关更多信息，请参阅 [为 Amazon S3 对象命名](object-keys.md)。

1. （可选）如果存储桶策略要求使用特定的加密密钥对于对象进行加密，则在**服务器端加密**下，您必须在创建文件夹时选择**指定加密密钥**并指定相同的加密密钥。否则，文件夹创建将失败。

1. 请选择 **Create folder**（创建文件夹）。

## 将文件夹设为公用
<a name="public-folders"></a>

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

在 Amazon S3 控制台中，您可以将文件夹设为公有。您还可以通过创建存储桶策略来将文件夹设为公有，该策略通过前缀限制数据访问权限。有关更多信息，请参阅 [Amazon S3 的身份和访问管理](security-iam.md)。

**警告**  
在 Amazon S3 控制台中将文件夹设为公有后，就不能再将其设为私有。而是必须对公有文件夹中的每个单独的对象设置权限，以使对象不具备公有访问。有关更多信息，请参阅 [配置 ACL](managing-acls.md)。

**Topics**
+ [创建文件夹](#create-folder)
+ [将文件夹设为公用](#public-folders)
+ [计算文件夹大小](#calculate-folder)
+ [删除文件夹](#delete-folders)

## 计算文件夹大小
<a name="calculate-folder"></a>

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

**计算文件夹的大小**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**通用存储桶**。

1. 在**通用存储桶**列表中，选择在其中存储文件夹的存储桶的名称。

1. 在**对象**列表中，选中文件夹名称旁边的复选框。

1. 选择 **Actions**（操作），然后选择 **Calculate total size**（计算总大小）。

**注意**  
在您导航离开该页面后，文件夹信息（包括总大小）不再可用。如果您想再次看到总大小，则必须再次计算该值。

**重要**  
当您对存储桶中的指定对象或文件夹使用 **Calculate total size**（计算总大小）操作时，Amazon S3 会计算对象总数和总存储大小。但是，在对象总数或总大小中并不计算未完成或正在进行的分段上传以及以前或非当前的版本。此操作仅针对存储在存储桶中的每个对象的当前或最新版本计算对象总数和总大小。  
例如，如果存储桶中有某个对象的两个版本，则 Amazon S3 中的存储计算器仅将它们计为一个对象。因此，在 Amazon S3 控制台中计算的对象总数可能不同于 S3 Storage Lens 存储统计管理工具中显示的**对象计数**指标以及 Amazon CloudWatch 指标 `NumberOfObjects` 报告的数量。同样，总存储大小也可能不同于 S3 Storage Lens 存储统计管理工具中显示的 **Total Storage**（总存储）指标和 CloudWatch 中显示的 `BucketSizeBytes` 指标。

## 删除文件夹
<a name="delete-folders"></a>

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

有关 Amazon S3 特征和定价的信息，请参阅 [Amazon S3](https://aws.amazon.com/s3/)。



**要从 S3 存储桶中删除文件夹**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**通用存储桶**。

1. 在**通用存储桶**列表中，选择要从中删除文件夹的存储桶的名称。

1. 在**对象**列表中，选中您要删除的文件夹和对象旁的复选框。

1. 选择**删除**。

1. 在**删除对象**页面上，验证您选择删除的文件夹和对象的名称是否列在**指定的对象**下。

1. 在 **Delete objects (删除对象)** 框中，输入 **delete**，然后选择 **Delete objects (删除对象)**。

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