

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Lightsail 对象存储桶存储和管理数据
<a name="buckets-in-amazon-lightsail"></a>

使用 Amazon Lightsail 对象存储服务随时随地从互联网上的任何地方存储和检索对象。该服务旨在降低开发人员进行 Web 级计算的难度，其使用 Amazon Simple Storage Service（Amazon S3）构建。Lightsail 对象存储使您可以访问与 Amazon 用于运行自己的全球网站网络相同的高度可扩展、可靠、快速、廉价的数据存储基础设施。此服务旨在为您带来最大化的规模效益。

## 对象存储概念
<a name="object-storage-concepts"></a>

以下概念和术语适用于 Lightsail 对象存储。

**存储桶**

存储桶是存储在 Lightsail 对象存储服务中的对象的容器。每个对象都包含在存储桶中，而存储桶都具有其自己的 URL。例如，如果名为 `media/sailbot.jpg` 的对象存储在美国东部（弗吉尼亚北部）区域 `us-east-1` 的 `amzn-s3-demo-bucket` 存储桶中，则可使用类似于 `https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg` 的 URL 对该对象进行寻址。

你可以在 Lightsail 可用 AWS 区域 的地方创建存储桶。有关哪个 AWS 区域 Lightsail 在哪些版本中可用的更多信息，请参阅*AWS 一般*参考中的[区域和终端节点](https://docs.aws.amazon.com/general/latest/gr/lightsail.html)。

**存储桶存储计划**

存储计划（在 AWS API 中称为*捆绑包*）指定存储桶的每月费用、存储空间和数据传输配额。首次创建存储桶时，您必须选择一个存储计划。存储桶启动并运行后，您稍后可以更改其计划。

在每月 AWS 账单周期内，您只能更改一次存储桶套餐。如果存储桶始终超出其存储空间或数据传输配额，或者存储桶的使用量始终处于其存储空间或数据传输配额的较低范畴，请更改存储桶的计划。由于存储桶可能会遇到不可预测的使用量波动，我们强烈建议您仅将更改存储桶计划作为一项长期策略，而不将其作为每月削减成本的短期措施。选择的存储套餐应在未来很长一段时间内为存储桶提供充足的存储空间和数据传输限额。

**对象**

对象是存储桶中存储的基本实体。上传到存储桶的文件在存储期间称为对象。对象由*数据*和*元数据*组成。*数据*部分对于 Lightsail 对象存储服务来说是不透明的。*元数据*是一组描述对象的名称-值对。其中包括一些默认元数据（如最后修改日期）和标准 HTTP 元数据（如 Content-Type）。

在存储桶中，对象将由键名称和版本 ID 进行唯一地标识。

**对象键名称**

键名称是存储桶中对象的唯一标识符。存储桶内的每个对象都只能有一个键。存储桶、键和版本 ID 的组合唯一标识各个对象。因此，您可以将 Lightsail 对象存储视为 “存储桶 \$1 密钥 \$1 版本” 和对象本身之间的基本数据映射。Lightsail 对象存储中的每个对象都可以通过 Web 服务端点、存储桶名称、密钥以及可选的版本（可选）的组合进行唯一寻址。例如，在 URL `https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg` 中，`amzn-s3-demo-bucket` 是存储桶的名称，`media/sailbot.jpg` 是对象键名称。

**对象版本控制**

版本控制是在相同的存储桶中保留对象的多个变量的功能。启用版本控制，可保留、检索和还原存储桶存储的每个对象的各个版本。使用版本控制能够更加轻松地从用户意外操作和应用程序故障中恢复数据。

默认情况下，在您创建存储桶时，版本控制处于禁用状态。版本控制启用后，您存储在存储桶中的每个对象的各个版本都会保留，直到您手动删除存储的版本。例如，如果您存储 `media/sailbot.jpg` 对象，稍后您存储一个具有相同对象键名称的较大文件，则较小的初始对象将作为*先前版本*保留。较大的新对象将成为*当前版本*。如果您认为不再需要此对象的先前版本，则可删除此版本。删除对象的当前版本时，您将删除该对象的所有先前存储版本。

存储对象版本占用存储桶存储空间的方式与存储对象的当前版本方式相同。启用版本控制后，可以暂停此功能，以便停止存储对象版本。上传新对象版本时，这也会占用较少的存储桶存储空间。当版本控制暂停时，将保留存储的对象版本，但不会保留在版本控制暂停期间上传的新对象版本。

**存储桶和对象访问**

默认情况下，所有对象存储资源（存储桶和对象）都是私有的。这意味着只有存储桶拥有者（创建该存储桶的 Lightsail 账户）才能访问存储分区及其对象。存储桶拥有者可以选择将其访问权限授予其他人员。要实现此目的，可以将所有对象或单个对象设置为公有，这样可让全球各地的人员读取它们。您还可以通过将 Lightsail 实例附加到存储分区或为存储分区创建访问密钥来授予完全编程访问权限。最后，您可以向其他 AWS 账户授予对您的存储桶的编程只读访问权限。

**AWS 区域**

你可以在所有可用 Lightsail 的存储桶中创建 Lightsail 对象存储桶。 AWS 区域 您可以选择一个区域，以便优化延迟、尽可能降低成本或满足法规要求。存储在中的对象 AWS 区域 不会离开该区域，除非您明确将其转移到另一个区域。例如，在美国西部（俄勒冈州）区域存储的对象将一直保留在该区域。

## 管理存储桶和对象
<a name="managing-buckets-and-objects"></a>

Lightsail 对象存储是故意使用最少的功能集构建的，该功能集侧重于简单性和稳健性。以下是管理存储桶和对象的一些元素：
+ **创建存储桶** – 创建存储数据的存储桶。存储桶是 Lightsail 对象存储服务中的基本容器。有关更多信息，请参阅[创建存储桶](amazon-lightsail-creating-buckets.md)。
+ **存储数据**-使用 Lightsail 控制台 AWS Command Line Interface （AWS CLI）和，将文件上传到您的存储桶。 AWS APIs有关上传文件的更多信息，请参阅[将文件上传到存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)。
+ **下载数据** — 随时下载已存储的对象。有关更多信息，请参阅[下载存储桶对象](amazon-lightsail-downloading-bucket-objects.md)。
+ **授予访问权限** — 对于要上传数据或下载存储桶中数据的其他人（如软件或个人），授予其访问权限或拒绝其访问。身份验证机制可帮助确保数据安全，以防未授权访问。有关更多信息，请参阅[存储桶的权限](amazon-lightsail-understanding-bucket-permissions.md)。
+ **管理版本控制** — 启用版本控制，以保留存储桶中存储的每个对象的各个版本。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。
+ **监控使用情况** — 监控存储桶中存储的对象数以及正在使用的存储空间量。有关更多信息，请参阅[查看存储桶指标](amazon-lightsail-viewing-bucket-metrics.md)。
+ **更改存储计划** — 如果存储桶被超额使用，则提高存储桶的大小；如果存储桶未得到充分利用，则缩小存储桶的大小。有关更多信息，请参阅[更改存储桶的套餐](amazon-lightsail-changing-bucket-plans.md)。
+ **连接您的存储桶** — 将您的 Lightsail 存储桶连接到您的 WordPress 网站以存储网站图像和附件。您也可以将您的存储桶指定为 Lightsail 内容分发网络 (CDN) 分发的来源。这可以加快向世界各地用户传递存储桶中对象的速度。有关更多信息，请参阅[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)和[教程：使用带有内容分发网络分发的存储桶](amazon-lightsail-using-distributions-with-buckets.md)。
+ **删除存储桶** — 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 创建用于存储对象的 Lightsail 存储桶
<a name="amazon-lightsail-creating-buckets"></a>

准备好开始将文件上传到云端时，在 Amazon Lightsail 对象存储服务中创建存储桶。你上传到 Lightsail 对象存储服务的每个文件都存储在 Lightsail 存储桶中。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 创建存储桶
<a name="creating-buckets"></a>

完成以下步骤以创建 Lightsail 存储桶。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择 **创建存储桶 **。

1. 选择**更改 AWS 区域** 以选择要在其中创建存储桶的区域。

   我们建议您在创建存储桶时使用的资源与您计划用于存储桶的资源 AWS 区域 相同。创建存储桶后无法更改其区域。

1. 为您的存储桶选择存储计划。

   存储计划指定存储桶的每月成本、存储空间配额和数据传输配额。

   在每月 AWS 账单周期内，您只能更改一次存储桶套餐。如果存储桶始终超出其存储空间或数据传输配额，或者存储桶的使用量始终处于其存储空间或数据传输配额的较低范畴，请更改存储桶的计划。有关更多信息，请参阅[更改存储桶的套餐](amazon-lightsail-changing-bucket-plans.md)。

1. 输入存储桶的名称。

   有关存储桶名称的更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 选择 **创建存储桶 **。

   将重新导向到新存储桶的管理页面。继续本指南的后续步骤部分以获取有关使用和管理存储桶的其他文档。

## 管理存储桶和对象
<a name="creating-buckets-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](#amazon-lightsail-creating-buckets)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 删除 Lightsail 对象存储桶
<a name="amazon-lightsail-deleting-buckets"></a>

如果您不再使用 Amazon Lightsail 对象存储服务，请将其删除。删除存储桶时，将永久删除存储桶中的所有对象（包括存储的对象版本和访问密钥）。

有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 强制删除存储桶
<a name="force-delete-bucket"></a>

除非您确认删除，否则无法删除具有以下条件之一的存储桶：
+ 存储桶是分配的源。
+ 存储桶有附加的实例。
+ 存储桶包含对象。
+ 存储桶具有访问密钥。

您必须确认删除操作，以确保不会中断与存储桶相关的现有工作流。例如，在存储桶上存储媒体的 WordPress 网站或在存储桶中缓存和提供对象的分发。

若要确认删除具有上述条件之一的存储桶，您必须强制删除该存储桶。在您删除存储桶之前，Lightsail 服务会提示您存储桶上存在哪些条件。如果您使用 Lightsail 控制台删除存储桶，则可以选择强制将其删除。如果使用 AWS CLI，则必须在`delete-bucket`发出请求时指定`--force-delete`标志。使用 [Lightsail控制台删除存储桶和使用](#delete-bucket-using-lightsail-console)本指南[删除存储分区 AWS CLI部分介绍了](#delete-bucket-using-aws-cli)这两个过程。

## 使用 Lightsail 控制台删除你的存储桶
<a name="delete-bucket-using-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台删除您的存储桶。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要删除的存储桶的名称。

1. 在选项卡菜单中选择省略号 (⋮) 图标，然后选择**删除**。

1. 选择**删除存储桶**。

1. 在显示的提示中，确认您的存储桶是否符合以下任何条件：
   + 包含一个对象
   + 有访问密钥
   + 已附加到实例
   + 是分配的源

   如果存储桶符合上述任何条件，则必须选择强制删除存储桶。

1. 请选择以下选项之一：
   + 选择**强制删除**以删除您的存储桶，即使存储桶符合此过程的步骤 6 中列出的任何条件。
   + 选择**是，删除**以删除您的存储桶，如果储桶不符合此过程的步骤 6 中列出的任何条件。
   + 选择**否，取消**以取消删除。

## 使用删除您的存储桶 AWS CLI
<a name="delete-bucket-using-aws-cli"></a>

完成以下过程，使用 AWS Command Line Interface (AWS CLI) 删除您的存储桶。使用 `delete-bucket` 命令完成此操作。有关更多信息，请参阅 *AWS CLI Command Reference* 中的 [delete-bucket](https://docs.aws.amazon.com/cli/latest/reference/lightsail/delete-bucket.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 在命令提示符或终端窗口中，输入以下命令之一：
   + 输入以下命令以删除不符合本指南的[强制删除存储桶](#force-delete-bucket)部分列出的条件的存储桶。

     ```
     aws lightsail delete-bucket --bucket-name BucketName
     ```
   + 输入以下命令以删除符合本指南的[强制删除存储桶](#force-delete-bucket)部分列出的条件的存储桶。

     ```
     aws lightsail delete-bucket --bucket-name BucketName --force-delete
     ```

   在命令中，*BucketName*替换为要删除的存储桶的名称。

   示例：

   ```
   aws lightsail delete-bucket --bucket-name amzn-s3-demo-bucket
   ```

   您会看到类似于以下示例的结果：  
![\[删除存储桶请求的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-delete-bucket-cli.png)

## 管理存储桶和对象
<a name="deleting-buckets-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [禁止公开访问亚马逊 Lightsail 中的存储桶](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，允许用户在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](#amazon-lightsail-deleting-buckets)。

# 创建 Lightsail 对象存储桶访问密钥
<a name="amazon-lightsail-creating-bucket-access-keys"></a>

您可以使用访问密钥来创建一组凭证，以授予存储桶及其对象的完全访问权限。访问密钥包含一组访问密钥 ID 和秘密访问密钥。秘密访问密钥仅在您创建它时可见。当您在软件或插件上配置访问密钥时，它可以使用 AWS APIs、和对存储桶拥有完全的读写权限 AWS SDKs。您还可以在 AWS CLI上配置访问密钥。

**重要**  
尽管每个存储桶可以有两个访问密钥，但我们建议您一次只创建一个存储桶访问密钥。我们还建议您定期轮换密钥并清点现有密钥。如果您的秘密访问密钥已被复制、丢失或发生泄露，您应删除访问密钥并创建新的访问密钥。有关轮换您存储桶访问密钥的最佳实操的更多信息，请参阅 [轮换存储桶访问密钥](amazon-lightsail-bucket-security-best-practices.md#bucket-security-best-practices-rotate-bucket-access-keys)。

有关权限选项的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 为存储桶创建访问密钥
<a name="create-bucket-access-keys"></a>

完成以下过程以配置存储桶的访问权限。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要为其配置访问权限的存储桶的名称。

1. 选择 **Permissions(权限)** 选项卡。

   页面的**访问密钥**部分将显示存储桶的现有访问密钥（如果有）。

1. 要为存储桶创建新密钥，请选择**创建访问密钥**。

1. 在显示的提示中，选择**是，创建**以确认您要创建新的访问密钥。否则，选择**否，取消**。

1. 在显示的成功提示符中，记下访问密钥 ID。

1. 选择**显示秘密访问密钥**以查看秘密访问密钥，并记下该密钥。不会再显示秘密访问密钥。
**重要**  
将访问密钥 ID 和秘密访问密钥存储在安全位置。如果发生泄露，您应删除它然后创建一个新的密钥。有关更多信息，请参阅 [删除 Lightsail 对象存储桶的访问密钥](amazon-lightsail-deleting-bucket-access-keys.md)。

1. 选择**继续**完成操作。

   新的访问密钥将在页面的**访问密钥**部分列出。如果访问密钥发生泄露或丢失，可删除访问密钥，然后创建新的访问密钥。
**注意**  
每个访问密钥旁边显示的**上次使用**列标识上次使用密钥的时间。如果密钥尚未使用，将显示破折号。展开访问密钥节点以查看服务以及上次使用密钥 AWS 区域 的位置。

# 删除 Lightsail 对象存储桶的访问密钥
<a name="amazon-lightsail-deleting-bucket-access-keys"></a>

访问密钥是一组凭证，可授予对存储桶及其对象的完全访问权限。访问密钥包含一组访问密钥 ID 和秘密访问密钥。如果您的秘密访问密钥已被复制、丢失或发生泄露，您应删除该访问密钥。

## 删除存储桶的访问密钥
<a name="delete-bucket-access-keys"></a>

您可以使用以下程序来删除存储桶的访问密钥。

**警告**  
在您删除访问密钥后，该密钥将永久消失且无法恢复。您只能将其替换为新的访问密钥。

**删除现有的 Lightsail 对象存储桶访问密钥**

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择您要删除访问密钥的存储桶的名称。

1. 选择**权限**选项卡。

1. 在 **Access keys（访问密钥）**部分，选择要删除的访问密钥的删除图标。  
![\[显示如何删除 Lightsail 对象存储桶的访问密钥。\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-keys-delete.png)

1. 选择 **Yes, delete（是，删除）**，以继续删除访问密钥。

删除现有密钥后，您可以创建新的访问密钥并针对您的软件或插件对其进行配置。有关更多信息，请参阅 [轮换存储桶访问密钥](amazon-lightsail-bucket-security-best-practices.md#bucket-security-best-practices-rotate-bucket-access-keys)。

# 限制公众访问 Lightsail 存储桶和对象
<a name="amazon-lightsail-block-public-access-for-buckets"></a>

Amazon Simple Storage Service（Amazon S3）是一种可让客户存储和保护数据的对象存储服务。Amazon Lightsail 对象存储服务基于亚马逊 S3 技术构建。Amazon S3 提供*账户级屏蔽公共访问权限*，您可以使用它来限制对 AWS 账户中所有 S3 存储桶的公共访问权限。账户级封禁公有访问权限可以将所有 S3 存储桶设为 AWS 账户 私有，无论现有的个人存储桶和对象权限如何。

在允许或拒绝公开访问时，Lightsail 对象存储分区会考虑以下因素：
+ Lightsail 存储桶访问权限。有关更多信息，请参阅[存储桶的权限](amazon-lightsail-understanding-bucket-permissions.md)。
+ Amazon S3 账户级别的封锁公共访问配置，它会覆盖 Lightsail 存储桶的访问权限。

如果您在 Amazon S3 中开启账户级**屏蔽*所有*公开访问权限**，则您的公有 Lightsail 存储桶和对象将变为私有且无法再公开访问。

## 为您的账户配置屏蔽公共访问权限设置
<a name="configuring-block-public-access"></a>

您可以使用 Amazon S3 控制台、 AWS Command Line Interface (AWS CLI) 和 REST API 来配置阻止公共访问设置。 AWS SDKs您可以在 Amazon S3 控制台的导航窗格中访问账户级屏蔽公共访问权限功能，如以下示例所示。

![\[Amazon S3 控制台中的屏蔽公共访问权限导航窗格选项\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3-block-public-access-navigation-pane.png)


Amazon S3 控制台提供的设置可以屏蔽所有公共访问权限，屏蔽通过新的或任何访问控制列表授予的公共访问权限，以及屏蔽通过新的或任何公有存储桶或接入点策略授予的对存储桶和对象的公共访问权限。

![\[Amazon S3 控制台中的屏蔽公共访问权限选项\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3-block-public-access-in-s3-console.png)


您可以在 Amazon S3 控制台中**打开**或**关闭**每个设置。在 API 中，相应的设置为 `TRUE`（打开）或 `FALSE`（关闭)。以下各节描述了每种设置对 S3 存储桶和 Lightsail 存储桶的影响。

**注意**  
以下各节提到了访问控制列表 (ACLs)。ACL 定义拥有或有权访问存储桶或单个对象的用户。有关更多信息，请参阅《Amazon S3 用户指南**》中的[访问控制列表概述](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。
+ **阻止*所有*公开访问**-启用此设置可阻止对您的 S3 存储桶、Lightsail 存储分区及其相应对象的所有公开访问。此设置包含以下所有设置。启用此设置后，只有您（存储桶所有者）和授权用户可以访问您的存储桶及其对象。您只能在 Amazon S3 控制台中启用此设置。它在 AWS CLI、Amazon S3 API 中不可用，或 AWS SDKs。
  + **阻止对通过*新的*访问控制列表授予的存储分区和对象的公开访问权限 (ACLs)**-启用此设置可阻止对存储桶和对象 ACLs 进行公开访问。此设置不影响现有设置 ACLs。因此，已有公有 ACL 的对象仍然是公有的。由于存储桶访问权限设置为 **All objects are public and read-only**（所有对象均为公有且只读），因此此设置对公有对象也没有影响。此设置在 Amazon S3 API 中被标记为 `BlockPublicAcls`。
**注意**  
WordPress 启用此设置后，将媒体放入 Lightsail 存储桶中的插件（例如 Offload Media Light 插件）可能会停止工作。这是因为大多数 WordPress 插件都会在对象上配置公共读取 ACL。 WordPress 切换对象的插件也 ACLs 可能停止工作。
  + **阻止对通过*任何*访问控制列表授予的存储桶和对象的公开访问权限 (ACLs)**-启用此设置可忽略公共存储桶和对象， ACLs 并阻止对存储桶和对象的公开访问权限。此设置允许将公共 ACLs 存储桶和对象放在存储桶和对象上，但在授予访问权限时会忽略它们。对于 Lightsail 存储桶，将存储分区的访问权限设置为 “**所有对象” 均为公开且只读**，或者将单个对象的权限设置为 “**公共（只读）**” 等同于在两者上设置公有 ACL。此设置在 Amazon S3 API 中被标记为 `IgnorePublicAcls`。
  + **阻止通过*新的*公共存储分区或接入点策略授予的对存储分区和对象的公开访问权限**-启用此设置可阻止在您的 Lightsail 存储分区上配置 “**所有对象都是公有的” 和 “只读**” 存储分区访问权限。此设置不影响已配置 **All objects are public and read-only**（所有对象均为公有且只读）存储桶访问权限的存储桶。此设置在 Amazon S3 API 中被标记为 `BlockPublicPolicy`。
  + **通过*任何*公共存储分区或接入点策略阻止对存储分区和对象的公开和跨账户访问 — 启用此设置可将您的所有 Lightsail 存储**分区设为私有。这会将所有 Lightsail 存储分区设为私有，即使它们配置了 “**所有对象均为公用” 和 “只读” 存储分区访问权限**。此设置在 Amazon S3 API 中被标记为 `RestrictPublicBuckets`。
**重要**  
此设置还会阻止在 Lightsail 存储分区上配置的跨账户访问，该存储分区还配置了 Lightsail 中的 **“所有对象都是公有的” 和** “只读” 存储分区访问权限。要继续允许跨账户访问，请务必在 Lightsail 中将 Lightsail 存储桶配置为 **“所有对象均为私有**存储桶” 访问权限，然后在 Amazon S3 中启用 **“禁止*通过*任何公用存储桶或接入点策略对存储桶和对象的公开和跨账户访问权限**” 设置。

有关屏蔽公共访问权限以及如何对其进行配置的更多信息，请参阅《Amazon S3 用户指南**》中的以下资源：
+ [阻止对 Amazon S3 存储的公有访问](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)
+ [为您的账户配置阻止公有访问设置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configuring-block-public-access-account.html)

使用 Lightsail 控制台、 AWS CLI AWS SDKs、和 REST API 为您的 Lightsail 存储桶配置访问权限。有关更多信息，请参阅[存储桶的权限](amazon-lightsail-understanding-bucket-permissions.md)。

**注意**  
Lightsail 使用服务相关角色从 Amazon S3 获取当前账户级别的封禁公开访问配置，并将其应用于 Lightsail 对象存储资源。在 Amazon S3 中配置封锁公共访问后，请至少等待一小时使其在 Lightsail 中生效。有关更多信息，请参阅[服务相关角色](amazon-lightsail-using-service-linked-roles.md)。

## 管理存储桶和对象
<a name="block-public-access-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](#amazon-lightsail-block-public-access-for-buckets)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 使用访问日志跟踪对象存储桶请求
<a name="amazon-lightsail-bucket-access-logs"></a>

访问日志记录为向 Amazon Lightsail 对象存储服务中的存储桶发出的请求提供了详细记录。这些信息可以包括请求类型、请求中指定的资源以及处理请求的时间和日期。对于许多应用程序而言，访问日志很有用。例如，访问日志信息可能在安全和访问权限审核方面很有用。此外，它还可以帮助您了解您的客户群。

**内容**
+ [启用日志传输需要哪些操作](#access-log-delivery)
+ [日志对象密钥格式](#log-object-key-format)
+ [如何传输日志？](#how-are-logs-delivered)
+ [尽量访问日志传输](#best-effort-access-log-delivery)
+ [存储桶日志记录状态更改将逐渐生效](#bucket-logging-status-changes)

## 启用日志传输需要哪些操作？
<a name="access-log-delivery"></a>

启用日志传输之前，请考虑以下事项。有关详细信息，请参阅[启用存储桶访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)。

1. **确定日志的目标存储桶。**您希望 Lightsail 在此存储桶中将访问日志保存为对象。源存储桶和目标存储桶必须位于同一个亚马逊云科技区域，并且由同一个账户拥有。

   您可以让日志传输至您拥有的且与源桶位于同一区域中的任何桶，包括源桶本身。不过，为了更方便地管理日志，我们建议您将访问日志保存在不同的桶中。

   当源桶和目标桶是同一桶时，将为写入该桶的日志创建额外的日志。这样做可能并不理想，因为它会导致您的存储空间使用量小幅增加。此外，有关日志的额外日志可能会导致更难以找到您所查找的日志。如果您选择将访问日志保存在源存储桶中，我们建议您为日志对象键指定前缀，以便对象名称以通用字符串开头，且日志对象更易于识别。当多个桶记录到同一目标桶时，键前缀也可用于区分源桶。

1. **（可选）确定日志对象键的前缀。**通过该前缀可更方便地查找日志对象。例如，如果您指定前缀值`logs/`，则 Lightsail 创建的每个日志对象都以其键中的`logs/`前缀开头。需要尾部斜杠 `/` 来表示前缀的末尾。以下是一个采用 `logs/` 前缀的日志对象键示例：

   ```
   logs/2021-11-31-21-32-16-E568B2907131C0C0
   ```

## 日志对象密钥格式
<a name="log-object-key-format"></a>

Lightsail 对上传到目标存储桶中的日志对象使用以下对象密钥格式：

```
TargetPrefix/YYYY-mm-DD-HH-MM-SS-UniqueString
```

在键中，`YYYY`、`mm`、`DD`、`HH`、`MM` 和 `SS` 分别为日志文件传输时间中表示年、月、日、小时、分钟和秒的数字。这些日期和时间采用协调世界时 (UTC)。

在特定时间传输的日志文件可包含在该时间前的任何时刻编写的记录。无法知道是否已传输特定时间间隔内的所有日志记录。

键的 `UniqueString` 部分用于防止覆盖文件。它没有意义，日志处理软件应忽略它。

## 如何传输日志？
<a name="how-are-logs-delivered"></a>

Lightsail 会定期收集访问日志记录，将记录整合到日志文件中，然后将日志文件作为日志对象上传到目标存储桶。如果您对传输至相同目标存储桶的多个源存储桶启用了日志记录，则此目标存储桶中将保留所有这些源存储桶的访问日志。但是，每个日志对象只会报告特定源存储桶的访问日志记录。

## 尽量访问日志传输
<a name="best-effort-access-log-delivery"></a>

访问日志记录会以最大努力进行传输。针对已正确配置了日志记录的存储桶的大多数请求会导致传输一条日志记录。大多数日志记录将在记录后的几小时内传输，但可以更频繁地传输这些记录。

因此，不能保证访问日志记录的完整性和即时性。特殊请求的日志记录可能会在实际处理了请求之后进行传输，也可能根本不会传输。访问日志的用途在于向您提供有关存储桶流量性质方面的信息。丢失日志记录的情况十分少见，但是访问日志记录不旨在完整记录所有请求。

## 存储桶日志记录状态更改将逐渐生效
<a name="bucket-logging-status-changes"></a>

桶日志记录状态的更改需要一定时间才能实际影响日志文件的传输。例如，如果您为某个桶启用了日志记录，那么将记录在以下时间内发送的请求，而不会记录其他请求。如果您将日志记录的目标桶从桶 A 更改为桶 B，则在接下来的一个小时里仍可能有一些日志传输到桶 A，但其他日志则会传输到新的目标桶 B。无论如何，新的设置将最终生效，并且您无需执行任何操作。

**Topics**
+ [启用日志传输需要哪些操作？](#access-log-delivery)
+ [日志对象密钥格式](#log-object-key-format)
+ [如何传输日志？](#how-are-logs-delivered)
+ [尽量访问日志传输](#best-effort-access-log-delivery)
+ [存储桶日志记录状态更改将逐渐生效](#bucket-logging-status-changes)
+ [访问日志格式](amazon-lightsail-bucket-access-log-format.md)
+ [管理访问日志](amazon-lightsail-enabling-bucket-access-logs.md)
+ [使用访问日志](amazon-lightsail-using-bucket-access-logs.md)

# 使用 Lightsail 存储桶日志分析对象存储访问权限
<a name="amazon-lightsail-bucket-access-log-format"></a>

访问日志记录为向 Amazon Lightsail 对象存储服务中的存储桶发出的请求提供了详细记录。您可以使用访问日志进行安全和访问审计，或者了解客户群。本节介绍了有关访问日志文件的格式和其他详细信息。有关日志记录基本知识的更多信息，请参阅[存储桶访问日志](amazon-lightsail-bucket-access-logs.md)。

访问日志文件由一系列的换行分隔日志记录组成。每个日志记录表示一个请求并由空格分隔的字段组成。

以下是含有五份日志记录的示例日志。

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

**注意**  
任何日志记录字段都可以设置为 `–` 以指示数据未知或不可用，或者该字段不适用于此请求。

**内容**
+ [日志记录字段](#log-record-fields)
+ [复制操作的其他日志记录](#additional-logging-for-copy-operations)
+ [自定义访问日志信息](#custom-access-log-information)
+ [可扩展访问日志格式的编程注意事项](#programing-considerations)

## 日志记录字段
<a name="log-record-fields"></a>

以下列表介绍了日志记录字段。

**接入点 ARN（Amazon 资源名称）**

请求访问点的 Amazon Resource Name (ARN)。如果访问点的 ARN 格式不正确或未使用，则该字段将包含“-”。如需有关访问点的更多信息，请参阅[使用访问点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)。有关更多信息 ARNs，请参阅 AW *S 一般*参考中有关[亚马逊资源名称 (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 的主题。

示例条目

```
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
```

**存储桶拥有者**

源存储桶拥有者的规范用户 ID。规范用户 ID 是另一种形式的 AWS 账户 ID。有关规范用户 ID 的更多信息，请参阅 *AWS 一般参考*中的 [AWS 账户标识符](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)。有关如何查找您的账户的规范用户 ID 的信息，请参阅[查找 AWS 账户的规范用户 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)。

示例条目

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**存储桶**

请求处理的存储桶的名称。如果系统收到格式错误的请求且无法确定存储桶，则请求不会显示在任何的访问日志中。

示例条目

```
amzn-s3-demo-bucket
```

**时间**

收到请求的时间；这些日期和时间采用协调世界时 (UTC)。使用 *strftime()* 术语的格式如下所示：*[%d/%b/%Y:%H:%M:%S %z]*

示例条目

```
[06/Feb/2019:00:00:38 +0000]
```

**远程 IP**

请求者的显式 Internet 地址。中间代理和防火墙可能会隐藏发送请求的计算机的实际地址。

示例条目

```
192.0.2.3
```

**请求者**

请求者的规范用户 ID 或用于未经验证请求的 `-`。如果请求者是 IAM 用户，此字段会返回请求者的 IAM 用户名以及该 IAM 用户所属的 AWS 根账户。此标识符与用于访问控制目的的标识符是相同的。

示例条目

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**请求 ID**

由 Lightsail 生成的字符串，用于唯一标识每个请求。

示例条目

```
3E57427F33A59F07
```

**操作**

此处列出的操作将声明为 `SOAP.operation`、`REST.HTTP_method.resource_type`、`WEBSITE.HTTP_method.resource_type` 或 `BATCH.DELETE.OBJECT`。

示例条目

```
REST.PUT.OBJECT
```

**键**

请求的“密钥”部分、已编码的 URL 或“-” (如果操作没有使用密钥参数)。

示例条目

```
/photos/2019/08/puppy.jpg
```

**请求 URI**

HTTP 请求消息的“请求-URI”部分。

示例条目

```
"GET /amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
```

**HTTP 状态**

响应的数字 HTTP 状态代码。

示例条目

```
200
```

**错误代码**

Amazon S3 [错误代码](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingRESTError.html#ErrorCode)或“-”（如果没有发生错误）。

示例条目

```
NoSuchBucket
```

**发送的字节数**

发送的响应字节数，不包括 HTTP 协议支出或“-” (如果为零)。

示例条目

```
2662992
```

**对象大小**

所涉及的对象的总大小。

示例条目

```
3462992
```

**总时间**

从存储桶传输请求的毫秒数。该值计算从收到请求到发出响应的最后一个字节的时间。由于网络延迟，从客户端计算出的时间可能会更长。

示例条目

```
70
```

**周转时间**

Lightsail 处理您的请求所花费的毫秒数。该值计算从收到您的请求的最后一个字节到发出响应的第一个字节的时间。

示例条目

```
10
```

**引用**

HTTP 引用站点标头的值（如果存在）。发送请求时，HTTP 用户代理（例如，浏览器）通常会将此标头设置为链接的 URL 或嵌入页面。

示例条目

```
"http://www.amazon.com/webservices"
```

**用户代理**

HTTP 用户代理标头的值。

示例条目

```
"curl/7.15.1"
```

**版本 ID**

请求中的版本 ID；如果操作没有使用 `versionId` 参数，则为 `-`。

示例条目

```
3HL4kqtJvjVBH40Nrjfkd
```

**主机 ID**

 x-amz-id-2 或 Lightsail 扩展请求编号。

示例条目

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**签名版本**

签名版本，用于对请求进行身份验证的 `SigV2` 或 `SigV4`，或未经身份验证的请求的 `-`。

示例条目

```
SigV2
```

**密码套件**

协商 HTTPS 请求的安全套接字层 (SSL) 密码或协商 HTTP 的 `-`。

示例条目

```
ECDHE-RSA-AES128-GCM-SHA256
```

**身份验证类型**

所使用的请求身份验证的类型，身份验证标头使用 `AuthHeader`，查询字符串（预签名 URL）使用 `QueryString`，未经身份验证的请求使用 `-`。

示例条目

```
AuthHeader
```

**主机标头**

用于连接 Lightsail 的端点。

示例条目

```
s3.us-west-2.amazonaws.com
```

**TLS 版本**

客户端协商的传输层安全性 (TLS) 版本。为以下值之一：`TLSv1`、`TLSv1.1`、`TLSv1.2`；如果不使用 TLS 则为 `-`。

示例条目

```
TLSv1.2
```

## 复制操作的其他日志记录
<a name="additional-logging-for-copy-operations"></a>

复制操作包括 `GET` 和 `PUT`。出于该原因，我们会在执行复制操作时记录两份记录。前面的部分描述了与操作的 `PUT` 部分相关的字段。以下列表描述了记录中与复制操作的 `GET` 部分相关的字段。

**存储桶拥有者**

用于存储将复制的对象的存储桶的规范用户 ID。规范用户 ID 是另一种形式的 AWS 账户 ID。有关规范用户 ID 的更多信息，请参阅 *AWS 一般参考*中的 [AWS 账户标识符](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)。有关如何查找您的账户的规范用户 ID 的信息，请参阅[查找 AWS 账户的规范用户 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)。

示例条目

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**存储桶**

用于存储被复制对象的存储桶的名称。

示例条目

```
amzn-s3-demo-bucket
```

**时间**

收到请求的时间；这些日期和时间采用协调世界时 (UTC)。使用 `strftime()` 术语的格式如下所示：`[%d/%B/%Y:%H:%M:%S %z]`

示例条目

```
[06/Feb/2019:00:00:38 +0000]
```

**远程 IP**

请求者的显式 Internet 地址。中间代理和防火墙可能会隐藏发送请求的计算机的实际地址。

示例条目

```
192.0.2.3
```

**请求者**

请求者的规范用户 ID 或用于未经验证请求的 `-`。如果请求者是 IAM 用户，此字段将返回请求者的 IAM 用户名与该 IAM 用户所属的 AWS 根账户。此标识符与用于访问控制目的的标识符是相同的。

示例条目

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**请求 ID**

由 Lightsail 生成的字符串，用于唯一标识每个请求。

示例条目

```
3E57427F33A59F07
```

**操作**

此处列出的操作将声明为 `SOAP.operation`、`REST.HTTP_method.resource_type`、`WEBSITE.HTTP_method.resource_type` 或 `BATCH.DELETE.OBJECT`。

示例条目

```
REST.COPY.OBJECT_GET
```

**键**

被复制对象的“密钥”或“-” (如果操作没有使用密钥参数)。

示例条目

```
/photos/2019/08/puppy.jpg
```

**请求 URI**

HTTP 请求消息的“请求-URI”部分。

示例条目

```
"GET /amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-foo=bar"
```

**HTTP 状态**

复制操作的 `GET` 部分的数字 HTTP 状态代码。

示例条目

```
200
```

**错误代码**

复制操作的 `GET` 部分的 Amazon S3 错误代码或 `-` （如果没有发生任何错误）。

示例条目

```
NoSuchBucket
```

**发送的字节数**

发送的响应字节数，不包括 HTTP 协议支出或“-” (如果为零)。

示例条目

```
2662992
```

**对象大小**

所涉及的对象的总大小。

示例条目

```
3462992
```

**总时间**

从存储桶传输请求的毫秒数。该值计算从收到请求到发出响应的最后一个字节的时间。由于网络延迟，从客户端计算出的时间可能会更长。

示例条目

```
70
```

**周转时间**

Lightsail 处理您的请求所花费的毫秒数。该值计算从收到您的请求的最后一个字节到发出响应的第一个字节的时间。

示例条目

```
10
```

**引用**

HTTP 引用站点标头的值（如果存在）。发送请求时，HTTP 用户代理（例如，浏览器）通常会将此标头设置为链接的 URL 或嵌入页面。

示例条目

```
"http://www.amazon.com/webservices"
```

**用户代理**

HTTP 用户代理标头的值。

示例条目

```
"curl/7.15.1"
```

**版本 ID**

被复制对象的版本 ID 或 `-`（如果 `x-amz-copy-source` 标头没有将 `versionId` 参数指定为复制源的一部分）。

示例条目

```
3HL4kqtJvjVBH40Nrjfkd
```

**主机 ID**

 x-amz-id-2 或 Lightsail 扩展请求编号。

示例条目

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**签名版本**

签名版本，用于对请求进行身份验证的 `SigV2` 或 `SigV4`，或未经身份验证的请求的 `-`。

示例条目

```
SigV2
```

**密码套件**

协商 HTTPS 请求的安全套接字层 (SSL) 密码或协商 HTTP 的 `-`。

示例条目

```
ECDHE-RSA-AES128-GCM-SHA256
```

**身份验证类型**

所使用的请求身份验证的类型，身份验证标头使用 `AuthHeader`，查询字符串（预签名 URL）使用 `QueryString`，未经身份验证的请求使用 `-`。

示例条目

```
AuthHeader
```

**主机标头**

用于连接 Lightsail 的端点。

示例条目

```
s3.us-west-2.amazonaws.com
```

**TLS 版本**

客户端协商的传输层安全性 (TLS) 版本。为以下值之一：`TLSv1`、`TLSv1.1`、`TLSv1.2`；如果不使用 TLS 则为 `-`。

示例条目

```
TLSv1.2
```

## 自定义访问日志信息
<a name="custom-access-log-information"></a>

您可以包含要存储在请求的访问日志记录中的自定义信息。为此，请将自定义查询字符串参数添加到请求的 URL 中。Lightsail 会忽略以 “x-” 开头的查询字符串参数，但会将这些参数作为日志记录`Request-URI`字段的一部分包含在请求的访问日志记录中。

例如，`GET` 的 `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-user=johndoe"` 请求工作方式与 `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg"` 的请求的相同，只是 `"x-user=johndoe"` 字符串包含在关联日志记录的 `Request-URI` 字段中。此功能仅在 REST 界面中可用。

## 可扩展访问日志格式的编程注意事项
<a name="programing-considerations"></a>

有时我们可能会通过向每一行的末尾添加新字段来扩展访问日志记录格式。因此，您应该编写解析访问日志的任何代码，以处理后续可能未知的字段。

# 在 Lightsail 中启用存储桶访问日志记录
<a name="amazon-lightsail-enabling-bucket-access-logs"></a>

访问日志记录为向 Amazon Lightsail 对象存储服务中的存储桶发出的请求提供了详细记录。对于许多应用程序而言，访问日志很有用。例如，访问日志信息可能在安全和访问权限审核方面很有用。此外，它还可以帮助您了解您的客户群。

默认情况下，Lightsail 不会收集存储桶的访问日志。启用日志记录后，Lightsail 会将源存储桶的访问日志传送到您选择的目标存储桶。源存储桶和目标存储桶必须位于同一个存储桶中， AWS 区域 并且由同一个账户拥有。

访问日志记录包含有关对存储桶做出的请求的详细信息。这些信息可以包括请求类型、请求中指定的资源以及处理请求的时间和日期。在本指南中，我们将向您展示如何使用 Lightsail API、 AWS Command Line Interface AWS CLI() 或 AWS 为存储桶启用或禁用访问日志记录。 SDKs

有关日志记录基本知识的更多信息，请参阅[存储桶访问日志](amazon-lightsail-bucket-access-logs.md)。

**内容**
+ [访问日志记录的成本](#costs-for-access-logging)
+ [使用 AWS CLI启用访问日志记录](#enabling-access-logging)
+ [使用 AWS CLI禁用访问日志记录](#disabling-access-logging)

## 访问日志记录的成本
<a name="costs-for-access-logging"></a>

在存储桶上启用访问日志记录不收取额外费用。但是，系统提交给存储桶的日志文件将会占用存储空间。您可以随时删除日志文件。如果日志存储桶的数据传输在配置的月度限额内，我们不会评估日志文件传输的数据传输费。

您的目标存储桶不应启用访问日志记录。您可以让日志传输至您拥有的且与源存储桶位于同一区域中的任何存储桶，包括源存储桶本身。不过，为了更方便地管理日志，我们建议您将访问日志保存在不同的存储桶中。

## 使用启用访问日志记录 AWS CLI
<a name="enabling-access-logging"></a>

要为您的存储桶启用访问日志记录，我们建议您在每个 AWS 区域 存储桶中创建一个专用的日志存储桶。然后，将访问日志传输到该专用日志记录存储桶。

完成以下步骤，以使用 AWS CLI启用访问日志记录。

**注意**  
在继续执行此过程之前，必须为 Lightsail 安装 AWS CLI 并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 在本地计算机上打开命令提示符或终端窗口。

1. 输入以下命令以启用访问日志记录。

   ```
   aws lightsail update-bucket --bucket-name SourceBucketName --access-log-config "{\"enabled\": true, \"destination\": \"TargetBucketName\", \"prefix\": \"ObjectKeyNamePrefix/\"}"
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *SourceBucketName*-将为其创建访问日志的源存储桶的名称。
   + *TargetBucketName*— 将保存访问日志的目标存储桶的名称。
   + *ObjectKeyNamePrefix/*-访问日志的可选对象密钥名称前缀。请注意，前缀必须以正斜杠 (`/`) 结尾。

   **示例**

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket1 --access-log-config "{\"enabled\": true, \"destination\": \"amzn-s3-demo-bucket2\", \"prefix\": \"logs/amzn-s3-demo-bucket1/\"}"
   ```

   在示例中，*amzn-s3-demo-bucket1*是要为其创建访问日志的源存储桶，*amzn-s3-demo-bucket2*是保存访问日志的目标存储桶，*logs/amzn-s3-demo-bucket1/*也是访问日志的对象密钥名称前缀。

   运行命令之后，您应看到类似于以下示例的结果。源存储桶已更新，访问日志应开始生成并存储在目标存储桶中。  
![\[存储桶的访问日志记录\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-enable-access-logging-for-a-bucket.png)

## 使用禁用访问日志记录 AWS CLI
<a name="disabling-access-logging"></a>

完成以下步骤，以使用 AWS CLI禁用访问日志记录。

**注意**  
在继续执行此过程之前，必须为 Lightsail 安装 AWS CLI 并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 在本地计算机上打开命令提示符或终端窗口。

1. 输入以下命令禁用访问日志记录。

   ```
   aws lightsail update-bucket --bucket-name SourceBucketName --access-log-config "{\"enabled\": false}"
   ```

   在命令中，替换*SourceBucketName*为要禁用访问日志记录的源存储桶的名称。

   **示例**

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --access-log-config "{\"enabled\": false}"
   ```

   运行命令之后，您应看到类似于以下示例的结果。  
![\[已为存储桶禁用访问日志记录\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-disable-access-logging-for-a-bucket.png)

# 在 Lightsail 中使用亚马逊 Athena 分析存储桶访问日志
<a name="amazon-lightsail-using-bucket-access-logs"></a>

在本指南中，我们向您介绍如何使用访问日志确定对存储桶所做的请求。有关更多信息，请参阅[存储桶访问日志](amazon-lightsail-bucket-access-logs.md)。

**内容**
+ [使用 Amazon Athena 查询请求的访问日志](#querying-access-logs-for-requests)
+ [使用 Amazon S3 访问日志确定对象访问请求](#identifying-object-access-requests)

## 使用 Amazon Athena 查询请求的访问日志
<a name="querying-access-logs-for-requests"></a>

您可以使用 Amazon Athena 查询和确定对访问日志中的存储桶所做的请求。

Lightsail 将访问日志作为对象存储在 Lightsail 存储桶中。使用可以分析日志的工具通常会更轻松。Athena 支持分析对象，并且可用于查询访问日志。

**示例**

以下示例展示了如何在 Amazon Athena 中查询存储桶服务器访问日志。

**注意**  
要在 Athena 查询中指定存储桶位置，您需要格式化目标 存储桶名称和目标前缀，其中日志以 S3 URI 形式传递，如下所示：`s3://amzn-s3-demo-bucket1-logs/prefix/`

1. 从 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/) 打开 Athena 控制台。

1. 在**查询编辑器**中，运行类似如下的命令。

   ```
   create database bucket_access_logs_db
   ```
**注意**  
最佳做法是在与 S3 存储桶 AWS 区域 相同的地方创建数据库。

1. 在**查询编辑器**中，运行类似如下的命令以便在步骤 2 中创建的数据库中创建一个表架构。`STRING` 和 `BIGINT` 数据类型值是访问日志属性。您可以在 Athena 中查询这些属性。对于 `LOCATION`，请输入之前记下的存储桶和前缀。

   ```
   CREATE EXTERNAL TABLE `s3_access_logs_db.amzn-s3-demo-bucket_logs`(
     `bucketowner` STRING, 
     `bucket_name` STRING, 
     `requestdatetime` STRING, 
     `remoteip` STRING, 
     `requester` STRING, 
     `requestid` STRING, 
     `operation` STRING, 
     `key` STRING, 
     `request_uri` STRING, 
     `httpstatus` STRING, 
     `errorcode` STRING, 
     `bytessent` BIGINT, 
     `objectsize` BIGINT, 
     `totaltime` STRING, 
     `turnaroundtime` STRING, 
     `referrer` STRING, 
     `useragent` STRING, 
     `versionid` STRING, 
     `hostid` STRING, 
     `sigv` STRING, 
     `ciphersuite` STRING, 
     `authtype` STRING, 
     `endpoint` STRING, 
     `tlsversion` STRING)
   ROW FORMAT SERDE 
     'org.apache.hadoop.hive.serde2.RegexSerDe' 
   WITH SERDEPROPERTIES ( 
     'input.regex'='([^ ]*) ([^ ]*) \\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) ([^ ]*)(?: ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*))?.*$') 
   STORED AS INPUTFORMAT 
     'org.apache.hadoop.mapred.TextInputFormat' 
   OUTPUTFORMAT 
     'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
   LOCATION
     's3://amzn-s3-demo-bucket1-logs/prefix/'
   ```

1. 在导航窗格中，在 **Database (数据库)** 下，请选择您的数据库。

1. 在 **Tables (表)** 下，请选择表名称旁边的 **Preview table (预览表)**。

   在 **Results (结果)** 窗格中，您应看到来自服务器访问日志中的数据，如 `bucketowner`、`bucket`、`requestdatetime` 等。这表示您成功创建了 Athena 表。您现在可以查询存储桶服务器访问日志。

**示例 — 显示对象删除者和删除事件（时间戳、IP 地址和 IAM 用户）**

```
SELECT RequestDateTime, RemoteIP, Requester, Key 
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs 
WHERE key = 'images/picture.jpg' AND operation like '%DELETE%';
```

**示例 — 显示 IAM 用户执行的所有操作**

```
SELECT * 
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs 
WHERE requester='arn:aws:iam::123456789123:user/user_name';
```

**示例 — 显示在特定时间段内对对象执行的所有操作**

```
SELECT *
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs
WHERE Key='prefix/images/picture.jpg' 
    AND parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z')
    BETWEEN parse_datetime('2017-02-18:07:00:00','yyyy-MM-dd:HH:mm:ss')
    AND parse_datetime('2017-02-18:08:00:00','yyyy-MM-dd:HH:mm:ss');
```

**示例 — 显示在特定时间段内特定 IP 地址传输的数据量**

```
SELECT SUM(bytessent) AS uploadTotal,
      SUM(objectsize) AS downloadTotal,
      SUM(bytessent + objectsize) AS Total
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs
WHERE RemoteIP='1.2.3.4'
AND parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2017-06-01','yyyy-MM-dd')
AND parse_datetime('2017-07-01','yyyy-MM-dd');
```

## 使用 Amazon S3 访问日志确定对象访问请求
<a name="identifying-object-access-requests"></a>

对于诸如 *GET*、*PUT* 和 *DELETE* 等操作，您可以对访问日志使用查询以确定对象访问请求，并发现有关这些请求的进一步信息。

以下 Amazon Athena 查询示例说明了如何从服务器访问日志中获取存储桶的所有 `PUT` 对象请求。

**示例 — 显示将在特定期间内发送 PUT 对象请求的所有请求者**

```
SELECT Bucket, Requester, RemoteIP, Key, HTTPStatus, ErrorCode, RequestDateTime
FROM s3_access_logs_db
WHERE Operation='REST.PUT.OBJECT' AND
parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND 
parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

以下 Amazon Athena 查询示例说明了如何从服务器访问日志中获取 Amazon S3 的所有 GET 对象请求。

**示例 — 显示将在特定期间内发送 GET 对象请求的所有请求者**

```
SELECT Bucket, Requester, RemoteIP, Key, HTTPStatus, ErrorCode, RequestDateTime
FROM s3_access_logs_db
WHERE Operation='REST.GET.OBJECT' AND
parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND 
parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

以下 Amazon Athena 查询示例说明了如何从服务器访问日志中获取向 S3 存储桶发出的所有匿名请求。

**示例 — 显示在特定时间段内向存储桶发出请求的所有匿名请求者**

```
SELECT Bucket, Requester, RemoteIP, Key, HTTPStatus, ErrorCode, RequestDateTime
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs
WHERE Requester IS NULL AND
parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND 
parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

**注意**  
您可以修改日期范围，以满足您的需要。
也可以使用这些查询示例进行安全监控。您可以查看结果或来自意外`PutObject`或未经授权的 IP 的`GetObject`呼叫 addresses/requesters ，也可以查看对存储桶的任何匿名请求。
此查询仅从启用了日志记录的时间检索信息。

# 管理 Lightsail 存储桶中的文件和文件夹
<a name="amazon-lightsail-viewing-objects-in-a-bucket"></a>

您可以使用 Lightsail 控制台在 Amazon Lightsail 对象存储服务中查看存储在存储桶中的所有对象。您还可以使用 AWS Command Line Interface (AWS CLI) 和 AWS 列 SDKs 出存储桶中的对象密钥。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台过滤对象
<a name="view-objects-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台查看存储在存储桶中的对象。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择所需存储桶的名称，以查看其中的对象。

1. **对象**选项卡中的**对象浏览器**窗格将显示存储桶中存储的对象和文件夹。  
![\[Lightsail 控制台中的对象浏览器窗格\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-object-browser-pane.png)

1. 浏览到所需对象的位置，以查看其属性。

1. 在所需对象的旁边添加复选标记，以查看其属性。

1. 此页面右侧的 **Object properties**（对象属性）窗格将显示有关该对象的信息。  
![\[Lightsail 控制台中的对象属性窗格\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-object-properties-pane.png)

   显示的信息包括：

   1. 用于查看和下载对象的链接。

   1. 用于复制或删除对象的操作菜单（⋮）。有关复制和删除对象的更多信息，请参阅在 [Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)和[删除存储桶](amazon-lightsail-deleting-bucket-objects.md)对象。

   1. 对象大小和上次修改时间戳。

   1. 单个对象的访问权限，可以是私有或公有（只读）。有关对象权限的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   1. 对象的元数据。内容类型 (`ContentType`) 密钥是 Lightsail 对象存储服务目前唯一支持的元数据。

   1. 对象键值标记。有关更多信息，请参阅[为存储桶对象添加标签](amazon-lightsail-tagging-bucket-objects.md)。

   1. 用于管理对象的存储版本的选项。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。
**注意**  
当您选择多个对象时，**Object properties**（对象属性）窗格仅显示所选对象的总大小。

## 使用查看对象 AWS CLI
<a name="view-objects-aws-cli"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）列出存储桶中的对象。使用 `list-objects-v2` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》中的 [list-objects-v2](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects-v2.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS Command Line Interface 

1. 打开命令提示符或终端窗口。

1. 输入以下命令之一。
   + 输入以下命令列出存储桶中的所有对象键。

     ```
     aws s3api list-objects-v2 --bucket BucketName --query "Contents[].{Key: Key, Size: Size}"
     ```

     在命令中，*BucketName*替换为要列出其所有对象的存储桶的名称。
   + 输入以下命令列出以特定对象键名称前缀开头的对象。

     ```
     aws s3api list-objects-v2 --bucket BucketName --prefix ObjectKeyNamePrefix --query "Contents[].{Key: Key, Size: Size}"
     ```

     在该命令中，将以下示例文本替换为自己的文本：
     + *BucketName*-您要列出其所有对象的存储桶的名称。
     + *ObjectKeyNamePrefix*-对象密钥名称前缀，用于将响应限制为以指定前缀开头的密钥。
**注意**  
这些命令使用 `--query` 参数筛选对每个对象的键值和大小的 `list-objects-v2` 请求的响应。

   示例：

   列出存储桶中的所有对象键

   ```
   aws s3api list-objects-v2 --bucket amzn-s3-demo-bucket --query "Contents[].{Key: Key, Size: Size}"
   ```

   上面命令的结果应类似于下面的示例。  
![\[AWS CLI list-objects-v2 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-list-objects-v2-result.png)

   列出以 `archived/` 对象键名称前缀开头的对象键

   ```
   aws s3api list-objects-v2 --bucket amzn-s3-demo-bucket --prefix archived/ --query "Contents[].{Key: Key, Size: Size}"
   ```

   上面命令的结果应类似于下面的示例。  
![\[AWS CLI list-objects-v2 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-list-objects-v2-prefix-result.png)

## 管理存储桶和对象
<a name="viewing-objects-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [禁止公开访问亚马逊 Lightsail 中的存储桶](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](#amazon-lightsail-viewing-objects-in-a-bucket)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

**Topics**
+ [使用 Lightsail 控制台过滤对象](#view-objects-lightsail-console)
+ [使用查看对象 AWS CLI](#view-objects-aws-cli)
+ [管理存储桶和对象](#viewing-objects-managing-buckets-and-objects)
+ [复制和移动对象](amazon-lightsail-copying-moving-bucket-objects.md)
+ [删除对象](amazon-lightsail-deleting-bucket-objects.md)
+ [下载对象](amazon-lightsail-downloading-bucket-objects.md)
+ [筛选对象](amazon-lightsail-filtering-bucket-objects.md)
+ [管理对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)
+ [还原对象版本](amazon-lightsail-restoring-bucket-object-versions.md)
+ [为对象添加标签](amazon-lightsail-tagging-bucket-objects.md)

# 在 Lightsail 存储桶之间复制和移动对象
<a name="amazon-lightsail-copying-moving-bucket-objects"></a>

您可以在 Amazon Lightsail 对象存储服务中复制已存储在存储桶中的对象。在本指南中，我们将向您展示如何使用 Lightsail 控制台和 AWS Command Line Interface ()AWS CLI复制对象。复制存储桶中的对象以创建对象的重复副本、重命名对象或在 Lightsail 位置之间移动对象（例如，将对象从一个位置移动 AWS 区域 到另一个位置，其中 Lightsail 可用）。只能使用 AWS APIs AWS SDKs、和 AWS Command Line Interface (AWS CLI) 跨位置复制对象。

有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 复制对象的限制
<a name="copying-moving-bucket-objects-restrictions"></a>

您可以使用 Lightsail 控制台创建大小不超过 2 GB 的对象的副本。您可以使用 AWS Command Line Interface (AWS CLI)、和，通过单个复制对象操作来创建大小不超过 5 GB 的对象的副本 AWS SDKs。 AWS APIs要复制大小超过 5 GB 的对象，必须使用 AWS CLI AWS APIs、和 AWS SDKs的分段上传操作。有关更多信息，请参阅[使用分段上传操作将文件上传到存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)。

## 使用 Lightsail 控制台复制对象
<a name="copying-moving-bucket-objects-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台复制存储在存储桶中的对象。要移动存储桶中的对象，您应将其复制到新位置，然后删除原始对象。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择所需存储桶的名称，以复制其中的对象。

1. 使用**对象**选项卡中，使用**对象浏览器**窗格浏览到要复制的对象所在的位置。

1. 在要复制的对象旁边添加复选标记。

1. 在**对象信息**窗格中，选择操作 (⋮) 菜单，然后选择**复制到**。

1. 在**选择目标**窗格中，浏览到存储桶中要复制所选对象的位置。您还可以通过将文件夹名称输入到**目标路径**文本框中，来创建新路径。

1. 选择**复制**将对象复制到选定或指定的目的地。否则，选择**否，取消**。

   成功复制对象后，将显示**复制完成**消息。如果您是要移动对象，则应删除原始对象。有关更多信息，请参阅[删除存储桶对象](amazon-lightsail-deleting-bucket-objects.md)。

## 使用复制对象 AWS CLI
<a name="copying-moving-bucket-objects-aws-cli"></a>

完成以下过程，使用 AWS Command Line Interface (AWS CLI) 复制存储桶中的对象。使用 `copy-object` 命令完成此操作。有关更多信息，请参阅《AWS CLI Command Reference**》中的 [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令复制存储桶中的对象。

   ```
   aws s3api copy-object --copy-source SourceBucketNameAndObjectKey --key DestinationObjectKey --bucket DestinationBucketName --acl bucket-owner-full-control
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *SourceBucketNameAndObjectKey*-当前存在源对象的存储桶的名称，以及要复制的对象的完整对象密钥。例如，若要从存储桶 `amzn-s3-demo-bucket` 中复制对象 `images/sailbot.jpg`，请指定 `amzn-s3-demo-bucket/images/sailbot.jpg`。
   + *DestinationObjectKey*-新对象副本的完整对象密钥。
   + *DestinationBucket* - 目标桶的名称。

   示例：
   + 将存储桶中的对象复制到同一存储桶：

     ```
     aws s3api copy-object --copy-source amzn-s3-demo-bucket1/images/sailbot.jpg --key media/sailbot.jpg --bucket amzn-s3-demo-bucket --acl bucket-owner-full-control
     ```
   + 将对象从一个存储桶复制到另一个存储桶：

     ```
     aws s3api copy-object --copy-source amzn-s3-demo-bucket1/images/sailbot.jpg --key images/sailbot.jpg --bucket amzn-s3-demo-bucket2 --acl bucket-owner-full-control
     ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI 复制对象命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-copy-object-result.png)

## 管理存储桶和对象
<a name="moving-objects-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](#amazon-lightsail-copying-moving-bucket-objects)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 通过删除对象来清除 Lightsail 存储桶的存储空间
<a name="amazon-lightsail-deleting-bucket-objects"></a>

您可以在 Amazon Lightsail 对象存储服务中从存储桶中删除对象。要释放存储空间，请删除不再需要的对象。例如，如果您收集了日志文件，最好在不再需要这些文件时将其删除。

有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

**内容**
+ [从启用版本控制的存储桶中删除对象](#deleting-objects-from-version-enabled-buckets)
+ [使用 Lightsail 控制台删除对象](#deleting-objects-lightsail-console)
+ [使用 Lightsail 控制台删除对象版本](#deleting-object-versions-lightsail-console)
+ [使用删除单个对象或对象版本 AWS CLI](#deleting-single-object-aws-cli)
+ [使用删除多个对象或对象版本 AWS CLI](#delete-objects-aws-cli)

## 从启用版本控制的存储桶中删除对象
<a name="deleting-objects-from-version-enabled-buckets"></a>

如果您的存储桶已启用版本控制，则存储桶中可能存在同一对象的多个版本。您可以使用 Lightsail 控制台、 AWS CLI AWS APIs、或 AWS 软件开发工具包删除对象的任何版本。但是，您应考虑以下选项。

**使用 Lightsail 控制台删除对象和对象版本**

在 Lightsail 控制台的 “**对象” 选项卡的 “**对象**” 浏览器窗格**中删除对象的当前版本时，也会删除该对象的所有先前版本。要删除对象的特定版本，您必须从**管理版本**窗格中执行操作。如果您使用**管理版本**窗格删除对象的当前版本，则会将最新的先前版本还原为当前版本。有关更多信息，请参阅本指南后面的[使用 Lightsail 控制台删除对象版本](#deleting-object-versions-lightsail-console)。

**使用 Lightsail API 删除对象和对象版本，或 AWS CLI AWS SDKs**

要删除单个对象及其所有存储的版本，请在删除请求中仅指定该对象的键。要删除对象的特定版本，请指定对象键以及版本 ID。有关更多信息，请参阅本指南后面的[使用 AWS CLI删除单个对象或对象版本](#deleting-single-object-aws-cli)。

## 使用 Lightsail 控制台删除对象
<a name="deleting-objects-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台删除对象，包括其存储的先前版本。使用 Lightsail 控制台，您一次只能删除一个对象。使用 AWS CLI 可以同时删除多个对象。有关更多信息，请参阅本指南后面的[使用 AWS CLI删除多个对象或对象版本](#delete-objects-aws-cli)。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择所需存储桶的名称，以删除其中的对象。

1. 使用**对象**选项卡中的**对象浏览器**窗格浏览到要删除的对象所在的位置。

1. 在要删除的对象旁边添加复选标记。

1. 在**对象信息**窗格中，选择操作 (⋮) 菜单，然后选择**删除**。

1. 在出现的确认窗格中，选择**是，删除**以确认您要永久删除对象。

   如果删除您所在的文件夹中的唯一对象，则也会删除该文件夹。发生这种情况是因为文件夹是对象键名称的一部分，当存储桶中没有其他对象共用相同的对象前缀时，删除该对象也会删除前面的文件夹。有关更多信息，请参阅[对象存储桶的键名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台删除对象版本
<a name="deleting-object-versions-lightsail-console"></a>

完成以下过程以删除存储的对象版本。这仅适用于启用版本控制的存储桶。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择所需存储桶的名称，以删除其中的对象。

1. 使用的**对象浏览器**窗格浏览到要删除的对象所在的位置。

1. 在要删除存储的先前版本的对象旁边添加复选标记。

1. 在**对象信息**窗格的**版本**部分中选择**管理**，然后选择“管理”。

1. 从显示的**管理存储的对象版本**窗格中，在要删除的对象版本旁边添加复选标记。

   您也可以选择删除对象的当前版本。

1. 选择**删除选定项**以删除选定版本。

   如果删除：
   + 对象的当前版本 - 对象最新的先前版本将还原为当前版本。
   + 对象的唯一版本 - 将从存储桶中删除对象。如果删除的版本是当前文件夹中的唯一对象，则也会删除该文件夹。发生这种情况是因为文件夹是对象键名称的一部分，当存储桶中没有其他对象共用相同的对象键前缀时，删除该对象也会删除前面的文件夹。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

## 使用删除单个对象或对象版本 AWS CLI
<a name="deleting-single-object-aws-cli"></a>

完成以下过程，使用 AWS Command Line Interface (AWS CLI) 删除存储桶中的单个对象或对象版本。使用 `delete-object` 命令完成此操作。有关更多信息，请参阅 *AWS CLI Command Reference* 中的 [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS Command Line Interface 

1. 打开命令提示符或终端窗口。

1. 输入以下命令删除存储桶中的对象或对象版本。

   删除对象：

   ```
   aws s3api delete-object --bucket BucketName --key ObjectKey
   ```

   删除对象版本：
**注意**  
只有启用版本控制的存储桶才能删除对象版本。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

   ```
   aws s3api delete-object --bucket BucketName --key ObjectKey --version-id VersionID
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要从中删除对象的存储桶的名称。
   + *ObjectKey*-要删除的对象的完整对象密钥。
   + *VersionID*-要删除的对象版本的 ID。

   示例：

   删除对象：

   ```
   aws s3api delete-object --bucket amzn-s3-demo-bucket --key images/sailbot.jpg
   ```

   删除对象版本：

   ```
   aws s3api delete-object --bucket amzn-s3-demo-bucket --key images/sailbot.jpg --version-id YF0YMBlUvexampleO07l2vJi9hRz4ujX
   ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI 删除对象命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-delete-object-version-result.png)

## 使用删除多个对象或对象版本 AWS CLI
<a name="delete-objects-aws-cli"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）删除存储桶中的多个对象。使用 `delete-objects` 命令完成此操作。有关更多信息，请参阅《 AWS CLI 命令参考》中的 “[删除对象](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html)”。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS Command Line Interface 

1. 打开命令提示符或终端窗口。

1. 输入以下命令删除存储桶中的多个对象或多个对象版本。

   ```
   aws s3api delete-objects --bucket BucketName --delete file://LocalDirectory
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要从中删除多个对象或多个对象版本的存储桶的名称。
   + *LocalDirectory*-计算机上指定要删除的对象或版本的.json 文档的目录路径。可使用的 .json 文档格式如下。

     要删除对象，请在.json 文件中输入以下文本，然后*ObjectKey*用要删除的对象的对象密钥替换。

     ```
     {
       "Objects": [
         {
           "Key": "ObjectKey1"
         },
         {
           "Key": "ObjectKey2"
         }
       ],
       "Quiet": false
     }
     ```

     要删除对象版本，请在 .json 文件中输入以下文本。将*ObjectKey*和*VersionID*替换为要删除 IDs 的对象密钥和对象版本。
**注意**  
只有启用版本控制的存储桶才能删除对象版本。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

     ```
     {
       "Objects": [
         {
           "Key": "ObjectKey1",
           "VersionId": "VersionID1"
         },
         {
           "Key": "ObjectKey2",
           "VersionId": "VersionID2"
         }
       ],
       "Quiet": false
     }
     ```

   示例：
   + 在 Linux 或 Unix 计算机上：

     ```
     aws s3api delete-objects --bucket amzn-s3-demo-bucket --delete file://home/user/Documents/delete-objects.json
     ```
   + 在 Windows 计算机上：

     ```
     aws s3api delete-objects --bucket amzn-s3-demo-bucket --delete file://C:\Users\user\Documents\delete-objects.json
     ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI 删除对象命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-delete-objects-version-result.png)

## 管理存储桶和对象
<a name="deleting-objects-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中为存储桶中的对象添加标签](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](#amazon-lightsail-deleting-bucket-objects)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 从 Lightsail 存储桶下载对象
<a name="amazon-lightsail-downloading-bucket-objects"></a>

您可以从 Amazon Lightsail 对象存储服务中您有权访问的存储桶或公有（只读）的存储桶下载对象。你可以使用 Lightsail 控制台一次下载一个对象。要在一个请求中下载多个对象，请使用 AWS Command Line Interface (AWS CLI) AWS SDKs、或 REST API。在本指南中，我们将向您展示如何使用 Lightsail 控制台下载对象，以及。 AWS CLI有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台下载对象
<a name="downloading-bucket-objects-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台从存储桶下载对象。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要从中下载文件的存储桶的名称。

1. 使用**对象**选项卡中的**对象浏览器**窗格浏览到要下载的对象所在的位置。

1. 在要下载的对象旁边添加复选标记。

1. 在**对象信息**窗格中，选择下载图标。  
![\[存储桶中对象的下载图标\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bucket-object-download-icon.png)

   根据浏览器的配置，您选择的文件将显示在页面上，或者下载到您的计算机中。如果文件显示在页面上，您可以右键单击该文件并选择**另存为**将其保存到计算机中。

## 使用下载对象 AWS CLI
<a name="downloading-bucket-objects-aws-cli"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）从存储桶中下载对象。使用 `get-object` 命令完成此操作。有关更多信息，请参阅 *AWS CLI Command Reference* 中的 [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS Command Line Interface 

1. 打开命令提示符或终端窗口。

1. 输入以下命令从存储桶下载对象。

   ```
   aws s3api get-object --bucket BucketName --key ObjectKey LocalFilePath
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要从中下载对象的存储桶的名称。
   + *ObjectKey*-要下载的对象的完整对象密钥。
   + *LocalFilePath*-计算机上要保存已下载文件的完整文件路径。

   示例：

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket --key images/sailbot.jpg C:\Users\user\Pictures\sailbot.jpg
   ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI 下载对象命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-download-object-result.png)

## 管理存储桶和对象
<a name="downloading-objects-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [禁止公开访问亚马逊 Lightsail 中的存储桶](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](#amazon-lightsail-downloading-bucket-objects)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 按名称前缀筛选 Lightsail 存储桶中的对象
<a name="amazon-lightsail-filtering-bucket-objects"></a>

您可以使用筛选功能在 Amazon Lightsail 对象存储服务中查找存储桶中的对象。在本指南中，我们将向您展示如何使用 Lightsail 控制台和 AWS Command Line Interface ()AWS CLI过滤对象。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台过滤对象
<a name="filtering-objects-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台筛选存储桶中的对象。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择所需存储桶的名称，以筛选其中的对象。

1. 在**对象**选项卡的**按名称筛选**文本框中，输入对象前缀。

   将筛选当前正在查看的文件夹中的对象列表，以匹配您输入的文本。以下示例显示，如果输入 `sail`，则会筛选页面上的对象列表，仅显示以 `sail` 开头的对象。  
![\[在 Lightsail 控制台中筛选存储桶对象\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-filter-bucket-objects-using-console.png)

   要筛选其他文件夹中的对象列表，请导航到该文件夹。然后，在**按名称筛选**文本框中输入对象前缀。

## 使用过滤对象 AWS CLI
<a name="filtering-objects-aws-cli"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）筛选存储桶中的对象。使用 `list-objects-v2` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》中的 [list-objects-v2](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects-v2.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS Command Line Interface 

1. 打开命令提示符或终端窗口。

1. 输入以下命令列出以特定对象键名称前缀开头的对象。

   ```
   aws s3api list-objects-v2 --bucket BucketName --prefix ObjectKeyNamePrefix --query "Contents[].{Key: Key, Size: Size}"
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要列出其所有对象的存储桶的名称。
   + *ObjectKeyNamePrefix*-对象密钥名称前缀，用于将响应限制为以指定前缀开头的密钥。
**注意**  
此命令使用 `--query` 参数筛选对每个对象的键值和大小的 `list-objects-v2` 请求的响应。

   示例：

   ```
   aws s3api list-objects-v2 --bucket amzn-s3-demo-bucket --prefix archived/ --query "Contents[].{Key: Key, Size: Size}"
   ```

   您应看到类似于以下示例的结果。  
![\[AWS CLI list-objects-v2 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-list-objects-v2-prefix-result.png)

## 管理存储桶和对象
<a name="filtering-objects-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](#amazon-lightsail-filtering-bucket-objects)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 在 Lightsail 中启用和暂停对象版本控制
<a name="amazon-lightsail-managing-bucket-object-versioning"></a>

Amazon Lightsail 对象存储服务中的版本控制是一种将对象的多个变体保存在同一个存储桶中的方法。对于存储桶中存储的每个对象，您可以使用版本控制功能来保留、检索和还原它们的各个版本。使用版本控制能够更加轻松地从用户意外操作和应用程序故障中恢复数据。当您为存储分区启用版本控制时，如果 Lightsail 对象存储服务同时收到同一对象的多个写入请求，则它会存储所有这些对象。默认情况下，Lightsail 对象存储服务中的存储分区处于禁用状态，因此您必须明确启用它。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

**重要**  
当您在配置了**个别对象可设为公有（只读）**访问权限的存储桶上启用或暂停版本控制后，权限将重置为**所有对象都是私有的**。如果您希望可以继续选择将个别对象设为公有，则必须手动将存储桶访问权限更改回**个别对象可设为公有（只读）**。有关更多信息，请参阅[配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)。

## 禁用、启用和暂停版本控制的存储桶
<a name="version-disabled-enabled-suspended-buckets"></a>

在 Lightsail 控制台中，存储桶版本控制可能处于以下三种状态之一：
+ 已禁用（`NeverEnabled`在 API 中和 SDKs）
+ 已启用（`Enabled`在 API 中和 SDKs）
+ 已暂停（`Suspended`在 API 中和 SDKs）

在存储桶中启用版本控制后，它将无法返回到禁用状态。但是，您可以暂停版本控制。您可以在存储桶级别启用和暂停版本控制。

版本控制状态将应用到该存储桶中的所有 (不是某些) 对象。当您在存储桶中启用版本控制功能时，所有新对象都将受版本控制，并为其指定唯一的版本 ID。启用版本控制时已存在于存储桶中的对象将始终向前增加版本。如果在以后的请求中进行了修改，将为其提供唯一的版本 ID。

## 版本 IDs
<a name="bucket-object-version-ids"></a>

如果您为存储分区启用版本控制，Lightsail 对象存储服务会自动为正在存储的对象生成唯一的版本 ID。例如，在一个存储桶中，您可以有两个密钥相同但版本不同的对象 IDs，例如`photo.gif`（版本 111111）和`photo.gif`（版本 121212）。

![\[存储桶版本控制已启用\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-versioning-versioning-enabled.png)


版本 IDs 无法编辑。它们是 Unicode、UTF-8 编码、URL 就绪、不透明的字符串，长度不超过 1,024 字节。以下版本 ID 的示例：

```
3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
```

## 使用 Lightsail 控制台启用或暂停对象版本控制
<a name="enable-dsable-bucket-object-versioning-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台启用或暂停对象版本控制。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要启用或暂停版本控制的存储桶的名称。

1. 选择 Versioning（版本控制）选项卡。

1. 根据存储桶的当前版本控制状态，完成以下操作之一：
   + 如果版本控制当前已暂停或尚未启用，请在页面的**对象版本控制**部分下方启用版本控制。
   + 如果版本控制当前已启用，请在页面的**对象版本控制**部分下方暂停版本控制。

## 使用启用或暂停对象版本控制 AWS CLI
<a name="enable-dsable-bucket-object-versioning-aws-cli"></a>

完成以下过程以使用 AWS Command Line Interface （AWS CLI）启用或暂停对象版本控制。使用 `update-bucket` 命令完成此操作。有关更多信息，请参阅《AWS CLI Command Reference**》中的 [update-bucket](https://docs.aws.amazon.com/cli/latest/reference/lightsail/update-bucket.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以启用或暂停对象版本控制。

   ```
   aws lightsail update-bucket --bucket-name BucketName --versioning VersioningState
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要为其启用对象版本控制的存储桶的名称。
   + *VersioningState* - 下列值之一：
     + `Enabled`- 启用对象版本控制。
     + `Suspended`- 暂停对象版本控制（如果之前已启用）。

   示例：

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --versioning Enabled
   ```

   您会看到类似于以下示例的结果：  
![\[响应存储桶更新请求\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-update-bucket-objects-versioning-cli.png)

## 管理存储桶和对象
<a name="versioning-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](#amazon-lightsail-managing-bucket-object-versioning)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 在 Lightsail 存储桶中恢复以前的对象版本
<a name="amazon-lightsail-restoring-bucket-object-versions"></a>

如果您在 Amazon Lightsail 对象存储服务中的存储桶支持版本控制，则可以恢复对象的先前版本。还原先前版本的对象，从意外用户操作或应用程序故障中恢复。

您可以使用 Lightsail 控制台恢复对象的先前版本。您也可以使用 AWS Command Line Interface (AWS CLI) 并 AWS SDKs 恢复对象的先前版本。为此，请将对象的特定版本复制到同一存储桶中，并使用相同的对象键名称。这将使用先前的版本替换当前版本，使先前的版本成为当前版本。有关版本控制的更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台恢复对象的先前版本
<a name="restore-previous-object-version-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台恢复对象的先前版本。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要为其还原先前版本对象的存储桶的名称。

1. 使用**对象**选项卡中的**对象浏览器**窗格浏览到对象的位置。

1. 在要还原先前版本的对象旁边添加复选标记。

1. 在**对象信息**窗格的版本部分下方选择**管理**。

1. 选择 **Restore (还原)**。

1. 从显示的存储版本窗格，在**还原对象**中选择要还原的对象的版本。

1. 选择**继续**。

1. 在显示的确认提示中，选择**是，还原**以还原对象版本。否则，选择**否，取消**。

## 使用恢复对象的先前版本 AWS CLI
<a name="restore-previous-object-version-aws-cli"></a>

完成以下过程以使用 AWS Command Line Interface （AWS CLI）还原先前版本的对象。使用 `copy-object` 命令完成此操作。您必须使用相同的对象键，将先前版本的对象复制到同一存储桶中。有关更多信息，请参阅《AWS CLI Command Reference**》中的 [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS Command Line Interface 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以还原先前版本的对象。

   ```
   aws s3api copy-object --copy-source "BucketName/ObjectKey?versionId=VersionId" --key ObjectKey --bucket BucketName
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要为其恢复对象的先前版本的存储桶的名称。您必须为 `--copy-source` 和 `--bucket` 参数指定相同的存储桶名称。
   + *ObjectKey*-要恢复的对象的名称。您必须为 `--copy-source` 和 `--key` 参数指定相同的对象键。
   + *VersionId*-要恢复到当前版本的先前对象版本的 ID。使用`list-object-versions`命令获取存储桶中对象 IDs 的版本列表。

   示例：

   ```
   aws s3api copy-object --copy-source "amzn-s3-demo-bucket/sailbot.jpg?versionId=GQWEexample87Mdl8Q_DKdVTiVMi_VyU" –key sailbot.jpg --bucket amzn-s3-demo-bucket
   ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI copy-object-version 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-copy-object-version-result.png)

## 管理存储桶和对象
<a name="restoring-versions-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中为存储桶中的对象添加标签](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](#amazon-lightsail-restoring-bucket-object-versions)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 在 Lightsail 存储桶中标记对象
<a name="amazon-lightsail-tagging-bucket-objects"></a>

标记存储桶中的对象，按用途、拥有者、环境或其他标准对它们进行分类。当您上传对象时或上传对象后，可以向对象添加标签。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台为对象添加和删除标签
<a name="add-delete-object-tags-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台为存储桶中的对象添加或删除标签。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择所需存储桶的名称，以标记其中的对象。

1. 使用**对象**选项卡中的**对象浏览器**窗格浏览到对象的位置。

1. 在所需对象的旁边添加复选标记，以添加或删除标签。

1. 在对象信息窗格中，选择**对象标签**部分下的下列选项之一：
   + **添加**或**编辑**（如已添加标签）。在键文本框中输入一个键，然后在**值**文本框中输入一个值。然后选择**保存**以添加标签。否则，选择**取消**。
   + 进行**编辑**，然后选择要删除的键值标签旁边的 **X**。选择**保存**以完成标签的删除，或选择**取消**而不删除。

## 使用添加和删除对象的标签 AWS CLI
<a name="add-delete-object-tags-aws-cli"></a>

完成以下过程，使用 AWS Command Line Interface (AWS CLI) 向对象添加标签或从对象中删除标签。使用 `put-object-tagging` 和 `delete-object-tagging` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》[delete-object-tagging](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object-tagging.html)中的 “[put-object-tagging](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object-tagging.html)和”。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入下列命令之一：
   + 向对象添加标签

     ```
     aws s3api put-object-tagging --bucket BucketName --key ObjectKey --tagging "{\"TagSet\":[{ \"Key\": \"KeyTag\", \"Value\": \"ValueTag\" }]}"
     ```

     在该命令中，将以下示例文本替换为自己的文本：
     + *BucketName*-包含您要标记的对象的存储桶的名称。
     + *ObjectKey*-要标记的对象的完整对象密钥。
     + *KeyTag*-标签的密钥值。
     + *ValueTag*-您的标签的价值。
   + 向对象添加标签

     ```
     aws s3api put-object-tagging --bucket BucketName --key ObjectKey --tagging "{\"TagSet\":[{ \"Key\": \"KeyTag1\", \"Value\": \"ValueTag1\" }, { \"Key\": \"KeyTag2\", \"Value\": \"ValueTag2\" }]}"
     ```

     在该命令中，将以下示例文本替换为自己的文本：
     + *BucketName*-包含您要标记的对象的存储桶的名称。
     + *ObjectKey*-要标记的对象的完整对象密钥。
     + *KeyTag1*-您的第一个标签的键值。
     + *ValueTag1*-您的第一个标签的值。
     + *KeyTag2*-第二个标签的密钥值。
     + *ValueTag2*-你的第二个标签的值。
   + 删除对象的标签：

     ```
     aws s3api delete-object-tagging --bucket BucketName --key ObjectKey
     ```

     在该命令中，将以下示例文本替换为自己的文本：
     + *BucketName*-包含您要删除其所有标签的对象的存储桶的名称。
     + *ObjectKey*-要标记的对象的完整对象密钥。

   示例：

   ```
   aws s3api delete-object --bucket amzn-s3-demo-bucket --key nptLmg6jqDo.jpg --tagging "{\"TagSet\":[{ \"Key\": \"Importance\", \"Value\": \"High\" }]}"
   ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI put-object-tagging 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-put-object-tagging-result.png)

## 管理存储桶和对象
<a name="tagging-objects-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket.md)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](#amazon-lightsail-tagging-bucket-objects)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# 控制实例对 Lightsail 存储桶的访问权限
<a name="amazon-lightsail-configuring-bucket-resource-access"></a>

将 Amazon Lightsail 实例附加到 Lightsail 存储桶，使其能够以编程方式访问存储桶及其对象。将实例附加到存储桶时，您无需像管理访问密钥那样管理凭证。附加的实例和存储桶必须位于同一 AWS 区域中。您无法将实例附加到位于其他区域的存储桶。

如果您在实例上配置软件或插件，以便将文件直接上传到存储桶，则非常适合使用资源访问权限。例如，如果您想将 WordPress 实例配置为在存储桶上存储媒体文件。有关更多信息，请参阅[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md#amazon-lightsail-connecting-buckets-to-wordpress.title)。

有关权限选项的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。有关安全最佳实践的更多信息，请参阅[对象存储的安全最佳实践](amazon-lightsail-bucket-security-best-practices.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 配置存储桶的资源访问权限
<a name="configure-bucket-resource-access"></a>

完成以下过程以配置存储桶的资源访问权限。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择您要为其配置资源访问权限的存储桶的名称。

1. 选择 **Permissions (权限)** 选项卡。

   页面的**资源访问权限**部分显示当前附加到存储桶的实例（如果有）。

1. 选择**附加实例**以将实例附加到存储桶。

1. 在**选择实例**下拉菜单中，选择您要附加到存储桶的实例。
**注意**  
您只能附加正在运行或处于已停止状态的实例。此外，您只能连接与存储桶 AWS 区域 相同的实例。

1. 选择**附加**以附加实例。否则，选择**取消**。

   附加后实例具有存储桶及其对象的完全访问权限。您可以在实例上配置软件或插件，以便以编程方式上传和访问存储桶上的文件。例如，如果您想将 WordPress 实例配置为在存储桶上存储媒体文件。有关更多信息，请参阅[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)。

# 根据使用量波动调整 Lightsail 存储空间计划
<a name="amazon-lightsail-changing-bucket-plans"></a>

在 Amazon Lightsail 对象存储服务中，存储桶的存储计划会指定其每月成本、存储空间配额和数据传输配额。在一个月度 AWS 账单周期内，您只能更新一次存储桶的存储套餐。当您更改存储桶的存储计划时，将重置存储空间和网络传输配额。但是，您因使用之前的存储计划而可能产生的超额存储空间和数据传输费用不包括在内。

如果存储桶始终超出其存储空间或数据传输配额，或者存储桶的使用量始终处于其存储空间或数据传输配额的较低范畴，请更新存储桶的存储计划。由于存储桶可能会遇到不可预测的使用量波动，我们强烈建议您仅将更新存储桶的存储计划作为一项长期策略，而不将其作为每月削减成本的短期措施。选择的存储计划应在未来很长一段时间内为存储桶提供充足的存储空间和数据传输配额。

有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 使用 Lightsail 控制台更改存储分区的存储计划
<a name="change-bucket-storage-plan-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台更改存储分区的存储计划。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要为其更新计划的存储桶的名称。

1. 在存储桶管理页面中选择** Metrics (指标)** 选项卡。

1. 选择**创建存储计划**。

1. 在显示的确认提示中，选择**是，更改**以继续更改存储桶的存储计划。否则，选择**否，取消**。

1. 选择要使用的计划，然后选择**选择计划**。

1. 在显示的确认提示中，选择**是，应用**以将更改应用到您的存储桶，或者选择**否，返回**而不应用。

## 使用更改存储桶的存储计划 AWS CLI
<a name="change-bucket-storage-plan-aws-cli"></a>

完成以下过程，使用 AWS Command Line Interface (AWS CLI) 更改存储桶的套餐。使用 `update-bucket-bundle` 命令完成此操作。请注意，存储桶的存储计划在 API 中称为存储桶捆绑。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [update-bucket-bundle](https://docs.aws.amazon.com/cli/latest/reference/lightsail/update-bucket-bundle.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令，以更改存储桶的计划。

   ```
   aws lightsail update-bucket-bundle --bucket-name BucketName --bundle-id BundleID
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要为其更新存储计划的存储桶的名称。
   + *BundleID*-您要应用于存储桶的新存储桶捆绑包的 ID。使用`get-bucket-bundles`命令查看可用存储桶捆绑包及其 IDs列表。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [get-bucket-bundles](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-bucket-bundle.html)。

   示例：

   ```
   aws lightsail update-bucket-bundle --bucket-name amzn-s3-demo-bucket --bundle-id medium_1_0
   ```

   您会看到类似于以下示例的结果：  
![\[更新存储桶捆绑请求的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-update-bucket-bundle-cli.png)

# 管理 Lightsail 存储分区访问权限以增强安全性
<a name="amazon-lightsail-configuring-bucket-permissions"></a>

使用存储桶访问权限控制存储桶中对象的公有（未经身份验证的）只读访问权限。您可以将存储桶设为私有或公有（只读）。您还可以将存储桶设为私有，同时还可以选择将个别对象设为公有（只读）。

**重要**  
当您将存储桶设为公有（只读）时，您将允许互联网上的任何人都可以通过存储桶的 URL（例如，`https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`）读取存储桶中的所有对象。如果您不希望互联网上的任何人都能访问您的对象，则不要将存储桶设为公有（只读）。

有关权限选项的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。有关安全最佳实践的更多信息，请参阅[对象存储的安全最佳实践](amazon-lightsail-bucket-security-best-practices.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

**重要**  
在允许或拒绝公开访问时，Lightsail 对象存储资源会同时考虑 Lightsail 存储桶访问权限和 Amazon S3 账户级别的封禁公共访问配置。有关更多信息，请参阅[屏蔽对存储桶的公共访问权限](amazon-lightsail-block-public-access-for-buckets.md)。

## 配置存储桶访问权限
<a name="configure-bucket-access-permissions"></a>

完成以下过程以配置存储桶的访问权限。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要为其配置访问权限的存储桶的名称。

1. 选择 **Permissions (权限)** 选项卡。

   页面的**存储桶访问权限**部分显示当前为存储桶配置的访问权限。

1. 选择**更改权限**以更改存储桶访问权限。

1. 请选择以下选项之一：
   + **所有对象都是私有的** — 只有您或您授予访问权限的人才可以读取存储桶中的所有对象。
   + **个别对象可设为公有（只读）**— 存储桶中的对象只能由您或您授予访问权限的人读取，除非您将个别对象设为公有（只读）。有关个别对象访问权限的更多信息，请参阅[在存储桶中配置个别对象的访问权限](amazon-lightsail-configuring-individual-object-access.md)。

     建议您仅在有特别需求时才选择**个别对象可设为公有（只读）**选项，比如仅将存储桶中的某些对象设为公有，同时保持所有其他对象的私有状态。例如，某些 WordPress 插件要求您的存储桶允许公开单个对象。有关更多信息，请参阅[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)和[教程：使用带有内容分发网络分发的存储桶](amazon-lightsail-using-distributions-with-buckets.md)。
   + **所有对象都是公有的（只读）**— 互联网上的任何人都可以读取存储桶中的所有对象。
**重要**  
当您将存储桶设为公有（只读）时，您将允许互联网上的任何人都可以通过存储桶的 URL（例如，`https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`）读取存储桶中的所有对象。如果您不希望互联网上的任何人都能访问您的对象，则不要将存储桶设为公有（只读）。

1. 选择**保存**以保存更改。否则，选择**取消**。

   根据您更改的存储桶访问权限，将执行以下更改：
   + **所有对象都是私有的** - 存储桶中的所有对象都将变成私有状态，即使它们之前配置了**公有（只读）**的个别对象访问权限。
   + **个别对象可设为公有（只读）**- 之前配置的对象（**公有（只读）**的个别对象访问权限）将为公有状态。现在，您可以为对象配置个别对象访问权限。
   + **所有对象都是公有的（只读）**- 存储桶中的所有对象都将变成公有（只读）状态，即使它们之前配置了**私有**的个别对象访问权限。

     有关个别对象访问权限的更多信息，请参阅[在存储桶中配置个别对象的访问权限](amazon-lightsail-configuring-individual-object-access.md)。

# 为跨账户授予对 Lightsail 存储桶的只读访问权限 AWS
<a name="amazon-lightsail-configuring-bucket-cross-account-access"></a>

使用跨账户存取为其他 AWS 账户及其用户授予存储桶中所有对象的只读访问权限。如果您想与其他账户共享对象，则跨 AWS 账户访问是理想的选择。当您向另一个账户授予跨 AWS 账户访问权限时，该账户中的用户通过存储桶和对象（例如`https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`）的 URL 对存储桶中的对象具有只读访问权限。您最多可以向 10 个 AWS 账户授予存储桶访问权限。

有关权限选项的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。有关安全最佳实践的更多信息，请参阅[对象存储的安全最佳实践](amazon-lightsail-bucket-security-best-practices.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 配置存储桶的跨账户存取
<a name="configure-bucket-cross-account-access"></a>

完成以下过程以配置存储桶的跨账户存取。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要为其配置跨账户存取的存储桶的名称。

1. 选择 **Permissions (权限)** 选项卡。

   页面的**跨账户访问**部分显示当前配置为访问存储桶 IDs 的 AWS 账户（如果有）。

1. 选择**添加跨账户访问权限**以授予其他 AWS 账户对存储桶的访问权限。

1. 在 AWS 账户 ID 文本框中输入您要授予访问权限的**账户的 ID**。

1. 选择**保存**以授予访问权限。否则，选择**取消**。

   您添加的 AWS 账户 ID 列在页面的**跨账户访问**部分。要删除 AWS 账户的跨账户存取，请在要删除的 AWS 账户 ID 的旁边选择删除（垃圾桶）图标。

# 向公众授予对 Amazon Lightsail 中各个存储桶对象的访问权限
<a name="amazon-lightsail-configuring-individual-object-access"></a>

使用个别对象访问权限控制存储桶中个别对象的公有（未经身份验证的）只读访问权限。您可以将存储桶中的个别对象设为私有或公有（只读）。

**重要**  
仅当存储桶的访问权限设置为**个别对象可设为公有（只读）**时，才可以配置个别对象访问权限。有关存储桶权限选项的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

建议您仅在有特别需求时才配置个别对象访问权限，比如仅将存储桶中的某些对象设为公有，同时保持所有其他对象的私有状态。例如，某些 WordPress 插件要求您的存储桶允许公开单个对象。有关更多信息，请参阅[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)和[教程：使用带有内容分发网络分发的存储桶](amazon-lightsail-using-distributions-with-buckets.md)。

有关权限选项的更多信息，请参阅[存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。有关安全最佳实践的更多信息，请参阅[对象存储的安全最佳实践](amazon-lightsail-bucket-security-best-practices.md)。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 配置个别对象访问权限
<a name="configure-individual-object-access-permissions"></a>

完成以下过程以配置存储桶中个别对象的访问权限。有关授予用户在 Lightsail 中管理存储桶的权限的 IAM 策略示例，请参阅用于[管理存储桶的 IAM 策略](amazon-lightsail-bucket-management-policies.md)。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要为其配置个别对象访问权限的存储桶的名称。

1. 选择**对象**选项卡。

1. 在要为其配置访问权限的对象旁边添加复选标记。

   对象信息窗格显示对象的当前访问权限。

1. 在对象信息窗格的**权限**部分选择**编辑**，以更改对象的访问权限。
**注意**  
如果编辑选项不可用，则存储桶的访问权限不允许配置个别对象访问权限。要配置个别对象访问权限，存储桶访问权限必须设置为**个别对象可设为公有（只读）**。有关更多信息，请参阅[配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)。

1. 在**选择权限**下拉菜单中，选择以下选项之一：
   + **私有** — 只有您或您授予访问权限的人才可以读取对象。
   + **公有（只读）**— 世界上任何人都可以读取对象。

1. 选择**保存**以保存更改。否则，选择**取消**。

   存储桶的**存储桶访问权限**设置对个别对象访问权限具有以下影响：
   + 如果您将存储桶访问权限更改为**所有对象都是私有的**，存储桶中的所有对象都将变成私有状态，即使它们之前配置了**公有（只读）**的个别对象访问权限。但是，会保留已配置的个别对象访问权限。例如，如果您将存储桶访问权限更改回**个别对象可设为公有（只读）**，则可再次公开读取所有具有**公有（只读）**个别访问权限的对象。
   + 如果您将存储桶访问权限更改为**所有对象都是公有的（只读）**，存储桶中的所有对象都将变成公有（只读）状态，即使它们之前配置了**私有**的个别对象访问权限。

     有关存储桶访问权限的更多信息，请参阅[配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)。

# 通过分段上传将文件上传到 Lightsail 存储桶
<a name="amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload"></a>

通过分段上传，可将单个文件作为一组分段上传到存储桶。每个分段都是文件数据的连续部分。您可以独立上传以及按任意顺序上传这些文件分段。如果任意分段传输失败，可以重新传输该分段且不会影响其它分段。文件的所有部分都上传完毕后，Amazon S3 会汇编这些部分，然后在 Amazon Lightsail 的存储桶中创建对象。一般而言，如果您的对象大小达到了 100 MB，您应该考虑使用分段上传，而不是在单个操作中上传对象。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

使用分段上传可提供以下优势：
+ 提高吞吐量 – 您可以并行上传分段以提高吞吐量。
+ 从任何网络问题中快速恢复 - 较小的分段大小可以将由于网络错误而需重启失败的上传所产生的影响降至最低。
+ 逐步上传 — 您可以在一段时间内逐步上传文件分段。启动分段上传后，您可以在 24 小时内完成分段上传。
+ 在您知道最终文件大小前开始上传 – 您可以在创建对象时将其上传。

我们建议您按以下方式使用分段上传：
+ 如果您在稳定的高带宽网络上传大文件，通过并行上传文件分段进行多线程上传，分段上传可以充分利用您的可用带宽。
+ 如果您在断点网络中上传对象，请使用分段上传以提高应对网络错误的复原能力，从而避免重新上传。在使用分段上传时，您只需重新尝试上传中断的分段即可。无需重头开始或重新上传整个文件。

**内容**
+ [分段上传流程](#mutipart-upload-process)
+ [并发分段上传操作](#concurrent-multipart-upload-operations)
+ [分段上传保留](#multipart-upload-retention)
+ [Amazon Simple Storage Service 分段上传限制](#multipart-upload-limits)
+ [拆分要上传的文件](#split-the-file-to-upload)
+ [使用启动分段上传 AWS CLI](#initiate-multipart-upload)
+ [使用上传分段 AWS CLI](#upload-a-part)
+ [使用列出分段上传的各个部分 AWS CLI](#list-parts-of-multipart-upload)
+ [创建分段上传 .json 文件](#create-multipart-upload-json-file)
+ [使用完成分段上传 AWS CLI](#complete-multipart-upload)
+ [使用列出存储桶的分段上传 AWS CLI](#list-multipart-uploads)
+ [使用 AWS CLI停止分段上传](#stop-multipart-uploads)

## 分段上传流程
<a name="mutipart-upload-process"></a>

分段上传是一个三步过程，它使用 Amazon S3 操作将文件上传到 Lightsail 中的存储桶：

1. 您可以使用[CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)操作启动分段上传。

1. 您可以使用[UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)操作上传文件片段。

1. 您可以使用[CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)操作完成分段上传。

**注意**  
在启动分段上传后，您可以使用[AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)操作停止分段上传。

分段上传请求完成后，Amazon Simple Storage Service 将根据上传的分段构建对象。然后，您可以按照访问存储桶中任何其他对象的方式访问该对象。

您可以列出所有正在执行的分段上传，或者获取为特定分段上传操作上传的分段列表。以上每个操作都在本节中进行了说明。

**分段上传开始**

当您发送请求以开始分段上传时，Amazon Simple Storage Service 将返回具有上传 ID 的响应。这是分段上传的唯一标识符。无论您何时上传分段、列出分段、完成上传或停止上传，您都必须包括此上传 ID。如果您想要提供描述已上传的对象的任何元数据，必须在请求中指定元数据以开始分段上传。

**分段上传**

上传分段时，除了指定上传 ID，还必须指定分段编号。您可以选择 1 和 10000 之间的任意分段编号。分段编号在您正在上传的对象中唯一地识别分段及其位置。您选择的分段编号不必是连续序列（例如，它可以是 1、5 和 14）。如果您使用之前上传的分段的同一分段编号上传新分段，则之前上传的分段将被覆盖。

每当您上传分段时，Amazon Simple Storage Service 都会在其响应中返回ETag标头。对于每个分段上传，您都必须记录分段编号和 ETag 值。您必须在随后的请求中包括这些值以完成分段上传。

**注意**  
分段上传的所有上传分段都会存储在您的存储桶中。它们会占用存储桶的存储空间，直到您完成上传、停止上传或上传超时。有关更多信息，请参阅 [分段上传保留](#multipart-upload-retention)本指南下文中的。

**分段上传完成**

完成分段上传后，Amazon Simple Storage Service 会根据分段编号按升序连接各分段，而从创建对象。如果在开始分段上传请求中提供了任何对象元数据，则 Amazon Simple Storage Service 会将该元数据与对象相关联。成功完成请求后，分段将不再存在。

您完整的分段上传请求必须包含上传 ID 以及分段编号和相应 ETag 值的列表。Amazon 简单存储服务响应包括 ETag 唯一标识组合对象数据的。这不一定 ETag 是对象数据的 MD5 哈希值。

您可以选择停止分段上传。停止分段上传后，无法再次使用该上传 ID 上传任何分段。然后，释放取消的分段上传的任何分段的所有存储空间。如果有任何分段上传正在进行，则即使在您停止后，它们仍然可能会成功或失败。要释放所有分段使用的所有存储，必须仅在完成所有分段的上传后才停止分段上传。

**分段上传列表**

您可以列出特定分段上传或所有正在进行的分段上传的分段。列出分段操作将返回您已为特定分段上传而上传的分段信息。对于每个列表分段请求，Amazon Simple Storage Service 将返回有关特定分段上传的分段信息，最多为 1000 个分段。如果分段上传中的分段超过 1000 个，您必须发送一系列列出分段请求以检索所有分段。请注意，返回的分段列表不包括仍在上传的分段。使用“列出分段上传”操作，您可以获得正在进行的分段上传的列表。

正在进行的分段上传是已开始但还未完成或停止的上传。每个请求将返回最多 1000 个分段上传。如果正在进行的分段上传超过 1000 个，您必须发送其他请求才能检索剩余的分段上传。仅使用返回的列表进行验证。发送“完成分段上传”请求时，请勿使用此列表的结果。相反，请保留您自己的列表，列出您在上传分段时指定的分段编号以及 Amazon Simple Storage Service 返回的相应 ETag 值。

## 并发分段上传操作
<a name="concurrent-multipart-upload-operations"></a>

在分布式开发环境中，您的应用程序可以同时在同一对象上开始多个更新。您的应用程序可能会使用同一对象键开始多个分段上传。然后，对于其中的每个上传，您的应用程序可以上传分段并将完成上传的请求发送到 Amazon Simple Storage Service，以创建数据元。当存储桶启用了版本控制时，完成分段上传将始终创建一个新版本。对于未启用版本控制的存储桶，其他请求可能会优先开始，例如在开始分段上传和完成分段上传之前收到的请求。

**注意**  
可能会优先考虑其他请求，例如在开始分段上传之后和完成之前收到的请求。例如，使用键开始分段上传之后，其他操作可能会在完成分段上传之前删除该键。如果发生这种情况，则完成分段上传的响应可能表示在未看到对象的情况下成功创建了对象。

## 分段上传保留
<a name="multipart-upload-retention"></a>

分段上传的所有上传分段都会存储在您的存储桶中。它们会占用存储桶的存储空间，直到您完成上传、停止上传或上传超时。分段上传超时，分段上传将在创建后 24 小时后删除。若您停止分段上传或分段上传超时，所有上传的分段都将被删除，并释放它们在存储桶上占用的存储空间。

## Amazon Simple Storage Service 分段上传限制
<a name="multipart-upload-limits"></a>

下表提供了分段上传的核心规范。
+ 最大对象大小：50 TB
+ 每次上传的最大分段数量：10000 个
+ 分段编号：1-10000（含）
+ 分段大小：5 MB（最小值）- 5 GB（最大值）。未对分段上传的最后一段施加大小限制。
+ “列出分段”请求返回的最大分段数量：1,000
+ “列出分段上传”请求返回的最大分段上传数量：1,000

## 拆分要上传的文件
<a name="split-the-file-to-upload"></a>

在 Linux 或 Linux 操作系统中使用 `split` 命令可以将文件拆分为多个分段，然后将其上传到存储桶。您可以在 Windows 操作系统中使用类似的免费软件应用程序来拆分文件。将文件拆分为多个部分后，继续执行本指南的[启动分段上传](#initiate-multipart-upload)部分。

## 使用启动分段上传 AWS CLI
<a name="initiate-multipart-upload"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）启动分段上传。使用 `create-multipart-upload` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》[create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)中的。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以为存储桶创建分段上传。

   ```
   aws s3api create-multipart-upload --bucket BucketName --key ObjectKey --acl bucket-owner-full-control
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要为其创建分段上传的存储桶的名称。
   + *ObjectKey*-用于要上传的文件的对象密钥。

   示例：

   ```
   aws s3api create-multipart-upload --bucket amzn-s3-demo-bucket --key sailbot.mp4 --acl bucket-owner-full-control
   ```

   您应看到类似于以下示例的结果。响应包括一个 `UploadID`，您必须在随后的命令中指定，才能上传分段以及完成此对象的分段上传。  
![\[create-multipart-upload命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-create-multipart-upload-result.png)

   在拥有分段上传的 `UploadID` 之后，请继续执行本指南的以下[使用 AWS CLI上传分段](#upload-a-part)部分，然后开始上传分段。

## 使用上传分段 AWS CLI
<a name="upload-a-part"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）上传分段上传的分段。使用 `upload-part` 命令完成此操作。有关更多信息，请参阅《AWS CLI Command Reference》**中的 [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以将分段上传到存储桶。

   ```
   aws s3api upload-part --bucket BucketName --key ObjectKey --part-number Number --body FilePart --upload-id "UploadID"  --acl bucket-owner-full-control
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要为其创建分段上传的存储桶的名称。
   + *ObjectKey*-用于要上传的文件的对象密钥。
   + *Number*-您正在上传的分段的部件号。分段编号在您正在上传的对象中唯一地识别分段及其位置。请确保每次上传分段时，以递增方式增加 `--part-number` 参数。为此，请按照完成分段上传时 Amazon Simple Storage Service 组装对象的顺序来对其进行编号。
   + *FilePart*-要从您的计算机上传的零件文件。
   + *UploadID*-您在本指南前面部分创建的分段上传的上传 ID。

   示例：

   ```
   aws s3api upload-part --bucket amzn-s3-demo-bucket --key sailbot.mp4 --part-number 1 --body sailbot.mp4.001 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control
   ```

   您应看到类似于以下示例的结果。对每个上传的分段重复 `upload-part` 命令。每个上传分段请求的响应将包括已上传分段的 `ETag` 值。记录您上传的每个分段的 `ETag` 值。您将需要所有的 `ETag` 值来完成分段上传，之后这将在本指南中进行介绍。  
![\[upload-part 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-upload-part-result.png)

## 使用 Amazon CLI 列出分段上传的分段
<a name="list-parts-of-multipart-upload"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）列出分段上传的分段。使用 `list-parts` 命令完成此操作。有关更多信息，请参阅《AWS CLI Command Reference》**中的 [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)。

完成此过程以获取分段上传中所有已上传分段的 `ETag` 值。您将需要这些值来完成分段上传，之后这将在本指南中进行介绍。但是，如果您记录了分段上传响应中的 `ETag` 值，则可以跳过此过程并继续执行本指南的[创建分段上传 .json 文件](#create-multipart-upload-json-file)部分。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以列出存储桶中分段上传的分段。

   ```
   aws s3api list-parts --bucket BucketName --key ObjectKey --upload-id "UploadID"
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要列出分段上传的各个部分的存储桶的名称。
   + *ObjectKey*-分段上传的对象密钥。
   + *UploadID*-您在本指南前面部分创建的分段上传的上传 ID。

   示例：

   ```
   aws s3api list-parts --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG"
   ```

   您应看到类似于以下示例的结果。响应列出了所有分段编号和您在分段上传中上传的分段的 `ETag` 值。将这些值复制到剪贴板，然后继续执行本指南的[创建分段上传 .json](#create-multipart-upload-json-file) 部分。  
![\[list-parts 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-list-parts-result.png)

## 创建分段上传 .json 文件
<a name="create-multipart-upload-json-file"></a>

完成以下步骤以创建分段上传 .json 文件，该文件定义您上传的所有分段及其 `ETag` 值。之后在本指南中需要该文件才能完成分段上传。

1. 打开文本编辑器， 将在本指南的上一部分中请求的 `list-parts` 命令的响应粘贴在其中。

   结果应该类似以下示例。  
![\[分段上传 JSON 文件编号 1\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-multipart-upload-json-file-1.png)

1. 重新格式化文本文件，如以下示例所示：  
![\[分段上传 JSON 文件编号 2\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-multipart-upload-json-file-2.png)

1. 将文本文件作为 `mpstructure.json` 保存到计算机，然后继续执行本指南的[使用 Amazon CLI 完成分段上传](#complete-multipart-upload)部分。

## 使用 Amazon CLI 完成分段上传
<a name="complete-multipart-upload"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）完成分段上传。使用 `complete-multipart-upload` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》[complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)中的。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以将分段上传到存储桶。

   ```
   aws s3api complete-multipart-upload --multipart-upload file://JSONFileName --bucket BucketName --key ObjectKey --upload-id "UploadID"  --acl bucket-owner-full-control
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *JSONFileName*-您在本指南前面部分创建的.json 文件的名称（例如，`mpstructure.json`）。
   + *BucketName*-您要为其完成分段上传的存储桶的名称。
   + *ObjectKey*-分段上传的对象密钥。
   + *UploadID*-您在本指南前面部分创建的分段上传的上传 ID。

   ```
   aws s3api complete-multipart-upload --multipart-upload file://mpstructure.json --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control
   ```

   您应看到类似于以下示例的响应。这确认分段上传已完成。现在，可在存储桶中组装并提供该对象。  
![\[complete-multipart-upload命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-complete-multipart-upload-result.png)

## 使用 Amazon CLI 列出存储桶分段上传
<a name="list-multipart-uploads"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）列出存储桶所有的分段上传。使用 `list-multipart-uploads` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》[list-multipart-uploads](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-multipart-uploads.html)中的。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以将分段上传到存储桶。

   ```
   aws s3api list-multipart-uploads --bucket BucketName
   ```

   在命令中，*BucketName*替换为要列出其所有分段上传的存储桶的名称。

   示例：

   ```
   aws s3api list-multipart-uploads --bucket amzn-s3-demo-bucket
   ```

   您应看到类似于以下示例的响应。  
![\[list-multipart-uploads命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-list-multipart-uploads-result.png)

## 使用 Amazon CLI 停止分段上传
<a name="stop-multipart-uploads"></a>

使用 AWS Command Line Interface (AWS CLI) 完成以下步骤以停止分段上传。如果您已开始分段上传但不想继续上传，则可以执行此操作。使用 `abort-multipart-upload` 命令完成此操作。有关更多信息，请参阅《*AWS CLI 命令参考*》[abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)中的。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以将分段上传到存储桶。

   ```
   aws s3api abort-multipart-upload --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*-您要停止分段上传的存储桶的名称。
   + *ObjectKey*-分段上传的对象密钥。
   + *UploadID*-您要停止的分段上传的上传 ID。

   示例：

   ```
   aws s3api abort-multipart-upload --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control
   ```

   此命令不会返回响应。您可以运行 `list-multipart-uploads` 命令以确认分段上传已停止。

# 遵守 Lightsail 对象存储的存储分区命名要求
<a name="bucket-naming-rules-in-amazon-lightsail"></a>

在 Amazon Lightsail 对象存储服务中创建存储桶时，必须为其命名。存储桶名称是客户在访问存储桶中存储的对象时将使用的 URL 的一部分。例如，如果您`amzn-s3-demo-bucket`在中命名存储桶 `us-east-1` AWS 区域，则您的存储桶的 URL 为`amzn-s3-demo-bucket.s3.us-east-1.amazonaws.com`。创建存储桶后无法更改其名称。请记住，客户能够看到您指定的存储桶名称。有关 Lightsail 对象存储服务的更多信息，请参阅[对象](buckets-in-amazon-lightsail.md)存储。有关创建存储桶的更多信息，请参阅[创建存储桶](amazon-lightsail-creating-buckets.md)。

存储桶名称必须符合 DNS 标准。因此，以下规则适用于在 Lightsail 中命名存储桶：
+ 存储桶名称的长度必须介于 3 到 54 个字符之间。
+ 存储桶名称只能由小写字母、数字和连字符 (-) 组成。
+ 存储桶名称必须以字母或数字开头和结尾。
+ 连字符 (-) 可以分隔单词，但不能连续指定。例如，允许使用 `doc-example-bucket`，但不允许使用 `doc--example--bucket`。
+ 存储桶名称必须在 `aws`（标准区域）分区中是唯一的，其中包括 Amazon Simple Storage Service（Amazon S3）中的存储桶。
+ 存储桶名称不得以前缀 `amzn-s3-demo-` 开头。
+ 存储桶名称不得以前缀 `sthree-` 开头。
+ 存储桶名称不得以前缀 `sthree-configurator` 开头。
+ 存储桶名称不得以后缀 `-s3alias` 结尾。

## 示例存储桶名称
<a name="example-bucket-names"></a>

以下示例存储桶名称是有效的，并遵循建议的命名准则：
+ `docexamplebucket1`
+ `log-delivery-march-2020`
+ `my-hosted-content`

不允许使用以下示例存储桶名称：
+ `doc.example.bucket`（包含句点）
+ `doc--example--bucket`（包含两个连续的连字符）
+ `doc-example-bucket-`（以连字符结尾）

# Lightsail 对象存储桶的密钥名称
<a name="understanding-bucket-object-key-names-in-amazon-lightsail"></a>

您上传到存储桶的文件将作为对象存储在 Amazon Lightsail 对象存储服务中。对象键（或键名称）唯一标识存储桶中存储的对象。本指南解释了密钥名称和密钥名称前缀的概念，它们构成了通过 Lightsail 控制台查看的存储桶的文件夹结构。有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 键名称
<a name="bucket-object-key-names"></a>

Lightsail 对象存储服务数据模型使用扁平结构，而不是像在文件系统中看到的那样使用分层结构。它不包含文件夹和子文件夹层次结构。但您可以使用键名称前缀和分隔符推断逻辑层次结构。Lightsail 控制台使用密钥名称前缀以文件夹结构显示您的对象。

假设您的存储桶包含具有以下对象键的四个对象：
+ `Development/Projects.xls`
+ `Finance/statement1.pdf`
+ `Private/taxdocument.pdf`
+ `to-dos.doc`

Lightsail 控制台使用密钥名称前缀 (`Development/``Finance/`、和`Private/`) 和分隔符 (`/`) 来呈现文件夹结构。`to-dos.doc` 键名称没有前缀，因此其对象直接在存储桶的根级别出现。如果您在 Lightsail 控制台中浏览到该`Development/`文件夹，则会看到该对象。`Projects.xls`您会在 `Finance/` 文件夹中看到 `statement1.pdf` 对象，并且会在 `Private/` 文件夹中看到 `taxdocument.pdf` 对象。

Lightsail 控制台允许通过创建以密钥名称前缀和分隔符值作为密钥名称的零字节对象来创建文件夹。这些文件夹对象不会显示在控制台中。但是，它们的行为与任何其他对象一样。您可以使用 Amazon S3 API、 AWS Command Line Interface (AWS CLI) 或来查看和操作它们 AWS SDKs。

## 对象键命名准则
<a name="object-key-naming-guidelines"></a>

您可以在对象键名中使用任意 UTF-8 字符。但是，在键名中使用某些字符可能导致一些应用程序和协议出现问题。以下准则可帮助您最大限度地遵守 DNS、Web 安全字符、XML 解析器等。 APIs

### 安全字符
<a name="w2aac59c37b7b5"></a>

以下字符集通常可安全地用于键名。
+ 字母数字字符
  + 0-9
  + a-z
  + A-Z
+ 特殊字符
  + 正斜杠 (`/`)
  + 感叹号 (`!`)
  + 连字符 (`-`)
  + 下划线 (`_`)
  + 句点 (`.`)
  + 星号 (`*`)
  + 单引号 (`'`)
  + 左括号 (`(`)
  + 右括号 (`)`)

以下是有效对象键名的示例：
+ `4my-organization`
+ `my.great_photos-2014/jan/myvacation.jpg`
+ `videos/2014/birthday/video1.wmv`

**重要**  
如果对象密钥名称以单个句点 (.) 或两个句点 (..) 结尾，则无法使用 Lightsail 控制台下载该对象。要下载密钥名称以一两个句点结尾的对象，必须使用 Amazon S3 API AWS CLI、和 AWS SDKs。有关更多信息，请参阅[下载存储桶对象](amazon-lightsail-downloading-bucket-objects.md)。

### 可能需要特殊处理的字符
<a name="asdf"></a>

键名中的以下字符可能需要另外进行代码处理，并且可能需要以十六进制形式在 URL 中编码或引用。其中部分字符是不可打印的字符，浏览器可能无法处理它们，这也需要特殊处理：
+ 表示和的符号 ("`&`")
+ 美元符号 ("`$`")
+ ASCII 字符范围 00–1F 十六进制（0–31 十进制）和 7F（127 十进制）
+ "At" 符号 ("`@`")
+ 等于号 ("`=`")
+ 分号 ("`;`")
+ 冒号 ("`:`")
+ 加号 ("`+`")
+ 空格 – 大量连续空格可能会在某些使用情形中丢失（特别是多个空格）
+ 逗号 ("`,`")
+ 问号 ("`?`")

### 要避免的字符
<a name="key-name-characters-to-avoid"></a>

避免在键名中使用以下字符，因为这些字符需要进行大量的特殊处理，才能在所有应用程序间保持一致性。
+ 反斜杠 ("`\`")
+ 左大括号 ("`{`")
+ 不可打印的 ASCII 字符（128–255 十进制字符）
+ 插入符号 ("`^`")
+ 右大括号 ("`}`")
+ 百分比字符 ("`%`")
+ 重音符/反勾号 ("```")
+ 右方括号 ("`]`")
+ 引号
+ “大于”符号 ("`>`")
+ 左方括号 ("`[`")
+ 波浪字符 ("`~`")
+ “小于”符号 ("`<`")
+ “井号”字符 ("`#`")
+ 竖线 ("`|`")

## XML 相关的对象键约束
<a name="xml-object-key-constraints"></a>

按照 [XML end-of-line 处理标准](https://www.w3.org/TR/REC-xml/#sec-line-ends)的规定，所有 XML 文本都经过标准化，因此单回车符（ASCII 代码 13）和紧接着换行符的回车符（ASCII 代码 10）被单个换行符所取代。为了确保正确解析 XML 请求中的对象键，当将回车符和[其他特殊字符插入 XML 标签时，必须使用等效的 XML 实体代码替换回车符和其他](https://www.w3.org/TR/xml/#syntax)特殊字符。以下是此类特殊字符及其等效实体代码的列表：
+ `'` 用作 `&apos;`
+ `”` 用作 `&quot;`
+ `&` 用作 `&amp;`
+ `<` 用作 `&lt;`
+ `<` 用作 `&gt;`
+ `\r` 用作 `&#13;` 或 `&#x0D;`
+ `\n` 用作 `&#10;` 或 `&#x0A;`

以下示例说明了使用 XML 实体代码替换回车的情况。此 `DeleteObjects` 请求将删除带有键参数 `/some/prefix/objectwith\rcarriagereturn` 的对象（其中 \$1r 是回车）。

```
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
      <Object>
        <Key>/some/prefix/objectwith&#13;carriagereturn</Key>
      </Object>
    </Delete>
```

# 安全 Lightsail 对象存储桶
<a name="amazon-lightsail-bucket-security-best-practices"></a>

Amazon Lightsail 对象存储提供了许多安全功能，供您在制定和实施自己的安全策略时考虑。以下最佳实践是一般指导原则，并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求，请将其视为有用的考虑因素而不是惯例。

**Contents**
+ [预防性安全最佳实践](#bucket-security-best-practices-preventative-practices)
  + [实施最低权限访问](#bucket-security-best-practices-least-privilege-access)
  + [确认您的 Lightsail 存储桶不可公开访问](#bucket-security-best-practices-verify-bucket-permissions)
  + [在 Amazon S3 中启用屏蔽公共访问权限](#bucket-security-best-practices-block-public-access)
  + [将实例附加到存储桶，以授予完全编程访问](#bucket-security-best-practices-attach-instances)
  + [轮换存储桶访问密钥](#bucket-security-best-practices-rotate-bucket-access-keys)
  + [使用跨账户访问权限向其他 AWS 账户授予对存储桶中对象的访问权限](#bucket-security-best-practices-cross-account-access)
  + [数据加密](#bucket-security-best-practices-data-encryption)
  + [启用版本控制](#bucket-security-best-practices-enable-versioning)
+ [监测和审计最佳实践](#bucket-security-best-practices-monitoring-auditing)
  + [启用访问日志记录并定期执行安全和访问审计](#bucket-security-best-practices-enable-access-logging)
  + [识别、标记和审核您的 Lightsail 存储桶](#bucket-security-best-practices-identify-tag)
  + [使用监控工具实施 AWS 监控](#bucket-security-best-practices-monitoring-tools)
  + [使用 AWS CloudTrail](#bucket-security-best-practices-cloudtrail)
  + [监控 AWS 安全公告](#bucket-security-best-practices-security-advisories)

## 预防性安全最佳实践
<a name="bucket-security-best-practices-preventative-practices"></a>

以下最佳做法可以帮助防止 Lightsail 存储桶发生安全事件。

### 实施最低权限访问
<a name="bucket-security-best-practices-least-privilege-access"></a>

在授予权限时，您可以决定谁将获得哪些 Lightsail 资源的权限。您可以对这些资源启用希望允许的特定操作。因此，您应仅授予执行任务所需的权限。实施最低权限访问对于减小安全风险以及可能由错误或恶意意图造成的影响至关重要。

有关创建 IAM policy 来管理存储桶的更多信息，请参阅[用于管理存储桶的 IAM policy](amazon-lightsail-bucket-management-policies.md)。有关 Lightsail 存储桶支持的 Amazon S3 操作的更多信息，请参阅 Ama *z* on Lightsail API 参考中的[对象存储操作](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_Amazon_S3.html)。

### 确认您的 Lightsail 存储桶不可公开访问
<a name="bucket-security-best-practices-verify-bucket-permissions"></a>

默认情况下，存储桶和对象都是私有的。通过将存储桶访问权限设置为 **All objects are private**（所有存储桶均为私有）使存储桶保持私有。对于大多数用例，您无需将存储桶或单个对象设为公有。有关更多信息，请参阅[配置存储桶中个别对象的访问权限](amazon-lightsail-configuring-individual-object-access.md)。

![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-all-objects-private.png)


但是，如果您使用存储桶托管网站或应用程序的媒体，在某些情况下，可能需要将存储桶或单个对象设为公有。您可以配置以下选项之一，以将存储桶或单个对象设为公有：
+ 如果存储桶中的某些对象需要对互联网上的任何人公开（只读），请将存储桶访问权限更改为 **Individual objects can be made public and read-only**（单个对象可设为公有且只读），并且仅将需要设为公有的对象更改为 **Public (read-only)**（公有（只读））。此选项会将存储桶设为私有，但允许您选择将单个对象设为公有。如果单个对象包含您不希望可公有访问的敏感或机密信息，则不要将其设为公有。如果您将单个对象设为公有，则应定期验证各个对象的公共可访问性。  
![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-individual-objects-public.png)
+ 如果存储桶中的所有对象都需要对互联网上的任何人公开（只读），请将存储桶访问权限更改为 **All objects are public and read-only**（所有对象均为公有且只读）。如果存储桶中的任何对象包含敏感或机密信息，请勿使用此选项。  
![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-all-objects-public.png)
+ 如果您之前已将存储桶更改为公有，或者将单个对象更改为公有，则可以通过将存储桶访问权限更改为 **All objects are private**（所有对象均为私有）来快速将存储桶及其所有对象更改为私有。  
![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-all-objects-private.png)

### 在 Amazon S3 中启用屏蔽公共访问权限
<a name="bucket-security-best-practices-block-public-access"></a>

在允许或拒绝公开访问时，Lightsail 对象存储资源会同时考虑 Lightsail 存储桶访问权限和 Amazon S3 账户级别的封禁公共访问配置。借助 Amazon S3 账户级别的封禁公共访问权限，账户管理员和存储桶拥有者可以集中限制公众对其的 Amazon S3 和 Lightsail 存储桶的访问权限。封锁公有访问可以将所有 Amazon S3 和 Lightsail 存储桶设为私有，无论资源是如何创建的，也无论可能配置了哪个存储桶和对象权限。有关更多信息，请参阅[屏蔽对存储桶的公共访问权限](amazon-lightsail-block-public-access-for-buckets.md)。

### 将实例附加到存储桶，以授予完全编程访问
<a name="bucket-security-best-practices-attach-instances"></a>

将实例附加到 Lightsail 对象存储桶是提供对存储桶的访问权限的最安全的方式。**资源访问**功能（将实例附加到存储桶的方式）可以授予实例对存储桶的完全编程访问权限。使用此方法，您不必将存储桶凭证直接存储在实例或应用程序中，也不必定期轮换凭证。例如，某些 WordPress 插件可以访问实例有权访问的存储桶。有关更多信息，请参阅[配置存储桶的资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)和[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)。

![\[在 Lightsail 控制台中访问存储桶资源\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-resource-access-attached.png)


但是，如果应用程序不在 Lightsail 实例上，则可以创建和配置存储桶访问密钥。存储桶访问密钥是长期凭证，不会自动轮换。有关更多信息，请参阅 [创建 Lightsail 对象存储桶访问密钥](amazon-lightsail-creating-bucket-access-keys.md)。

![\[Lightsail 控制台中的存储桶访问密钥\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-keys.png)


### 轮换存储桶访问密钥
<a name="bucket-security-best-practices-rotate-bucket-access-keys"></a>

每个存储桶最多可以有两个访问密钥。虽然您可以同时拥有两个不同的访问密钥，但我们建议您在密钥轮换时间之外，每次仅为存储桶创建一个访问密钥。这种做法可确保您随时创建新的存储桶访问密钥时，该密钥不会处于使用状态。例如，如果您现有的秘密访问密钥被复制、丢失或泄露，并且需要轮换现有访问密钥，则创建第二个访问密钥进行轮换会很有帮助。

如果您在存储桶中使用访问密钥，则应定期轮换密钥，并清点现有密钥。请确认上次使用访问密钥的日期以及使用访问密钥的 AWS 区域 与您对该密钥的使用方式期望相符。上次使用访问密钥的日期显示在 Lightsail 控制台的存储分区管理页面 “**权限**” 选项卡的 “**访问密钥**” 部分中。删除未使用的访问密钥。

要轮换访问密钥，您需要创建一个新的访问密钥，在软件上对其进行配置并测试，然后删除之前使用过的访问密钥。在您删除访问密钥后，该密钥将永久消失且无法恢复。您只能将其替换为新的访问密钥。有关更多信息，请参阅[创建 Lightsail 对象存储桶访问密钥](amazon-lightsail-creating-bucket-access-keys.md)和[删除 Lightsail 对象存储桶的访问密钥](amazon-lightsail-deleting-bucket-access-keys.md)。

### 使用跨账户访问权限向其他 AWS 账户授予对存储桶中对象的访问权限
<a name="bucket-security-best-practices-cross-account-access"></a>

您可以使用跨账户访问权限使拥有 AWS 账户的特定个人可以访问存储桶中的对象，而无需将存储桶及其对象公开。如果您配置了跨账户访问权限，请确保 IDs 列出的账户是您想要授予对存储桶中对象的访问权限的正确账户。有关更多信息，请参阅[为存储桶配置跨账户存取](amazon-lightsail-configuring-bucket-cross-account-access.md)。

![\[Lightsail 控制台中的存储桶跨账户访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-cross-account-access.png)


### 数据加密
<a name="bucket-security-best-practices-data-encryption"></a>

Lightsail 使用亚马逊托管密钥执行服务器端加密，并通过强制执行 HTTPS (TLS) 对传输中的数据进行加密。服务器端加密通过单独服务中存储的密钥对数据进行加密，有助于降低数据风险。此外，对传输中的数据进行加密有助于防止潜在的攻击者使用 person-in-the-middle或类似的攻击窃听或操纵网络流量。

### 启用版本控制
<a name="bucket-security-best-practices-enable-versioning"></a>

版本控制是在相同的桶中保留对象的多个变量的方法。您可以使用版本控制来保存、检索和还原存储在 Lightsail 存储桶中的每个对象的每个版本。使用版本控制能够轻松从用户意外操作和应用程序故障中恢复数据。有关更多信息，请参阅[启用和暂停存储桶对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

## 监测和审计最佳实践
<a name="bucket-security-best-practices-monitoring-auditing"></a>

以下最佳做法可以帮助检测 Lightsail 存储桶的潜在安全漏洞和事件。

### 启用访问日志记录并定期执行安全和访问审计
<a name="bucket-security-best-practices-enable-access-logging"></a>

访问日志记录详细地记录对存储桶做出的各种请求。这些信息可能包括请求类型（`GET`、`PUT`）、请求中指定的资源以及处理请求的时间和日期。为存储桶启用访问日志记录，并定期执行安全和访问审计，以确定正在访问存储桶的实体。默认情况下，Lightsail 不会收集存储桶的访问日志。您必须手动启用访问日志记录。有关更多信息，请参阅[存储桶访问日志](amazon-lightsail-enabling-bucket-access-logs.md)和[启用存储桶访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)。

### 识别、标记和审核您的 Lightsail 存储桶
<a name="bucket-security-best-practices-identify-tag"></a>

确定您的 IT 资产是监管和安全性的一个至关重要的方面。您需要查看所有 Lightsail 存储桶，以评估其安全态势并对潜在的薄弱环节采取措施。

使用标签确定安全性敏感或审计敏感资源，然后在您需要搜索这些资源时使用这些标签。有关更多信息，请参阅[标签](amazon-lightsail-tags.md)。

### 使用监控工具实施 AWS 监控
<a name="bucket-security-best-practices-monitoring-tools"></a>

监控是维护 Lightsail 存储桶和其他资源的可靠性、安全性、可用性和性能的重要组成部分。您可以在 Lightsail 中监控**存储桶大小** (`BucketSizeBytes`) 和 `Number of objects` (**NumberOfObjects**) 存储桶指标并创建通知警报。例如，当存储桶的大小增加或减少到特定大小时，或者当存储桶中的对象数量上升或下降到特定数量时，您可能希望收到通知。有关更多信息，请参阅[创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

### 使用 AWS CloudTrail
<a name="bucket-security-best-practices-cloudtrail"></a>

AWS CloudTrail 提供用户、角色或 AWS 服务在 Lightsail 中执行的操作的记录。您可以使用收集的信息 CloudTrail 来确定向 Lightsail 发出的请求、发出请求的 IP 地址、谁发出了请求、何时发出请求以及其他详细信息。例如，您可以识别影响数据访问的操作 CloudTrail条目，特别是`CreateBucketAccessKey``GetBucketAccessKeys`、`DeleteBucketAccessKey``SetResourceAccessForBucket`、和`UpdateBucket`。在您设置 AWS 账户时，默认 CloudTrail 处于启用状态。您可以在 CloudTrail 控制台中查看最近的事件。要为您的 Lightsail 存储桶创建持续的活动和事件记录，您可以在控制台中创建跟踪。 CloudTrail 有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的[记录数据事件以便跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。

### 监控 AWS 安全公告
<a name="bucket-security-best-practices-security-advisories"></a>

主动监控注册到 AWS 账户的主电子邮件地址。 AWS 将使用此电子邮件地址就可能影响您的新出现的安全问题与您联系。

AWS 具有广泛影响的运营问题发布在 S [AWS ervice Health Das](https://status.aws.amazon.com/) hboard 上。操作性问题也会通过 Personal Health Dashboard 发布给个人账户。有关更多信息，请参阅 [AWS Health 文档](https://docs.aws.amazon.com/health/)。

# 控制对 Lightsail 存储桶和对象的访问权限
<a name="amazon-lightsail-understanding-bucket-permissions"></a>

默认情况下，所有 Amazon Lightsail 对象存储资源（存储桶和对象）都是私有的。这意味着只有存储桶拥有者，即创建该存储分区的 Lightsail 账户，才能访问存储分区及其对象。存储桶拥有者可以选择将其访问权限授予其他人员。您可以通过以下方式授予存储桶及其对象的访问权限：
+ **只读访问权限** — 以下选项控制通过存储桶 URL（例如，`https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`）对存储桶及其对象进行只读访问的权限。
  + **存储桶访问权限** — 使用存储桶访问权限向互联网上的所有人授予存储桶中所有对象的访问权限。有关更多信息，请参阅本指南下文中的[存储桶访问权限](#bucket-access-permissions)。
  + **个别对象访问权限** — 使用个别对象访问权限向互联网上的所有人授予存储桶中个别对象的访问权限。有关更多信息，请参阅本指南下文中的[个别对象访问权限](#individual-bucket-object-access-permissions)。
  + **跨账户访问权限**-使用跨账户访问权限为其他 AWS 账户授予对存储桶中所有对象的访问权限。有关更多信息，请参阅本指南下文中的[跨账户存取](#cross-account-access)。
+ **读写访问权限** — 以下选项控制存储桶及其对象的完全读写访问权限。将这些选项与 AWS Command Line Interface (AWS CLI) AWS APIs、和 AWS SDKs。
  + **访问密钥** — 使用访问密钥授予应用程序或插件的访问权限。有关更多信息，请参阅本指南下文中的[访问密钥](#bucket-access-keys)。
  + **资源访问权限**-使用资源访问权限来授予对 Lightsail 实例的访问权限。有关更多信息，请参阅本指南下文中的[资源访问权限](#bucket-resource-access)。
+ **亚马逊简单存储服务阻止公开访问** — 使用亚马逊简单存储服务 (Amazon S3) 账户级封锁公开访问功能，集中限制公众对亚马逊 S3 和 Lightsail 中存储桶的访问。封锁公有访问可以将所有 Amazon S3 和 Lightsail 存储桶设为私有，无论可能配置了何种存储桶和对象权限。有关更多信息，请参阅本指南下文中的 [Amazon S3 屏蔽公共访问权限](#s3-block-public-access)。

有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。有关安全最佳实践的更多信息，请参阅[对象存储的安全最佳实践](amazon-lightsail-bucket-security-best-practices.md)。

## 存储桶访问权限
<a name="bucket-access-permissions"></a>

使用存储桶访问权限控制存储桶中对象的公有（未经身份验证的）只读访问权限。配置存储桶访问权限时，您可以选择以下选项之一：
+ **所有对象都是私有的** — 只有您或您授予访问权限的人才可以读取存储桶中的所有对象。此选项不允许将个别对象设为公有（只读）。
+ **个别对象可设为公有（只读）**— 存储桶中的对象只能由您或您授予访问权限的人读取，除非您将个别对象设为公有（只读）。此选项允许将个别对象设为公有（只读）。有关更多信息，请参阅本指南下文中的[个别对象访问权限](#individual-bucket-object-access-permissions)。
+ **所有对象都是公有的（只读）**— 互联网上的任何人都可以读取存储桶中的所有对象。如果您选择此选项，则互联网上的所有人都可以通过存储桶的 URL（例如，`https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`）来读取所有对象。

有关配置存储桶访问权限的更多信息，请参阅[配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)。

## 个别对象访问权限
<a name="individual-bucket-object-access-permissions"></a>

使用个别对象访问权限控制存储桶中个别对象的公有（未经身份验证的）只读访问权限。仅当存储桶的[存储桶访问权限](#bucket-access-permissions)允许将个别对象设为公有（只读）时，才可以配置个别对象访问权限。配置个别对象的访问权限时，您可以选择以下选项之一：
+ **私有** — 只有您或您授予访问权限的人才可以读取对象。
+ **公有（只读）**— 互联网上的任何人都可以读取对象。通过存储桶的 URL（例如，`https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`），互联网上的任何人都可以读取个别对象。

有关配置个别对象访问权限的更多信息，请参阅[在存储桶中配置个别对象的访问权限](amazon-lightsail-configuring-individual-object-access.md)。

## 跨账户访问
<a name="cross-account-access"></a>

使用跨账户访问权限为其他 AWS 账户及其用户授予对存储桶中所有对象的经过身份验证的只读访问权限。如果您想与其他账户共享对象，则跨 AWS 账户访问是理想的选择。如果您将跨账户存取授予其他 AWS 账户，则该账户中的用户可以通过存储桶的 URL（例如 `https://amzn-s3-demo-bucket.us-east-1.amazonaws.com/media/sailbot.jpg`）以只读方式访问存储桶中的对象。您最多可以授予 10 个 AWS 账户的访问权限。

有关配置跨账户存取的更多信息，请参阅[配置存储桶的跨账户存取](amazon-lightsail-configuring-bucket-cross-account-access.md)。

## 访问密钥
<a name="bucket-access-keys"></a>

使用访问密钥创建一组凭证，以授予存储桶及其对象的完全读写访问权限。访问密钥包含一组访问密钥 ID 和秘密访问密钥。每个存储桶最多可以有两个访问密钥。您可以在应用程序上配置访问密钥，使其可以使用 AWS APIs、和访问您的存储桶及其对象 AWS SDKs。您也可以在 AWS CLI 上配置访问密钥。

有关创建访问密钥的更多信息，请参阅[创建存储桶的访问密钥](amazon-lightsail-creating-bucket-access-keys.md)。

## 资源访问权限
<a name="bucket-resource-access"></a>

使用资源访问权限为 Lightsail 实例授予对存储桶及其对象的完全读写权限。使用资源访问权限，则您不必管理访问密钥等凭证。要授予实例的访问权限，请将实例附加到同一 AWS 区域中的存储桶。要拒绝访问，请将实例从存储桶中分离。如果您要在实例上将应用程序配置为以编程方式上传和访问存储桶上的文件，则非常适合使用资源访问权限。其中一个用例是将 WordPress 实例配置为在存储桶上存储媒体文件。有关更多信息，请参阅[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)和[教程：使用带有内容分发网络分发的存储桶](amazon-lightsail-using-distributions-with-buckets.md)。

有关配置资源访问权限的更多信息，请参阅[配置存储桶的资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)。

## Amazon S3 屏蔽公共访问权限
<a name="s3-block-public-access"></a>

使用 Amazon S3 阻止公开访问功能集中限制公众对 Amazon S3 和 Lightsail 中的存储桶的访问。封锁公有访问可以将所有 Amazon S3 和 Lightsail 存储桶设为私有，无论可能配置了何种存储桶和对象权限。您可以使用 Amazon S3 控制台 AWS SDKs、 AWS CLI 和 REST API 为账户中的所有存储桶（包括 Lightsail 对象存储服务中的存储桶）配置阻止公开访问设置。有关更多信息，请参阅[屏蔽对存储桶的公共访问权限](amazon-lightsail-block-public-access-for-buckets.md)。

# 将文件上传到 Lightsail 对象存储桶
<a name="amazon-lightsail-uploading-files-to-a-bucket"></a>

当您将文件上传到 Amazon Lightsail 对象存储服务中的存储桶时，该文件将作为对象存储。对象由文件数据和描述对象的元数据组成。一个存储桶中可以包含任意数量的对象。

您可以将任何类型的文件上传至存储桶，包括映像、备份、数据、电影等。使用 Lightsail 控制台可以上传的最大文件大小为 2 GB。要上传更大的文件，请使用 Lightsail API、 AWS Command Line Interface (AWS CLI) 或。 AWS SDKs

Lightsail 根据您要上传的文件的大小提供以下选项：
+ 使用 **Lightsail 控制台上传大小不超过 2 GB 的对象 — 使用** Lightsail 控制台，你可以上传一个大小不超过 2 GB 的对象。有关更多信息，请参阅本指南后面的[使用 Lightsail 控制台将文件上传到存储桶](#uploading-files-to-a-bucket-lightsail-console)。
+ 使用** AWS SDKs、REST API 通过单个操作上传大小不超过 5 GB 的对象，或者 AWS CLI— 使用**单个 PUT 操作，您可以上传大小不超过 5 GB 的单个对象。有关更多信息，请参阅本指南下文中的[使用 AWS CLI将文件上传到存储桶](#uploading-files-to-a-bucket-aws-cli)。
+ **使用 AWS SDKs、REST API 分段上传对象，或者 AWS CLI** — 使用分段上传 API，您可以上传一个大小为 5 MB 到 50 TB 的大型对象。分段上传 API 旨在改进大型对象的上传体验。您可以分段上传对象。这些对象分段可以按任何顺序并行独立上传。有关更多信息，请参阅[使用分段上传操作将文件上传到存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)。

有关存储桶的更多信息，请参阅[对象存储](buckets-in-amazon-lightsail.md)。

## 对象键名称和版本控制
<a name="uploading-files-to-a-bucket-object-key-names"></a>

使用 Lightsail 控制台上传文件时，文件名将用作对象密钥名称。对象键（或键名称）唯一标识存储在存储桶中的对象。将文件上传到的文件夹（如果有）将用作键名称前缀。例如，如果您将名为 `sailbot.jpg` 的文件上传到存储桶中名为 `images` 的文件夹，则完整的对象键名称和前缀将是 `images/sailbot.jpg`。但是，对象会像 `sailbot.jpg` 在 `images` 文件夹中一样在控制台中显示。有关对象键名称的更多信息，请参阅[对象存储桶的键名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

使用 Lightsail 控制台上传目录时，该目录中的所有文件和子文件夹都将上传到存储桶。然后，Lightsail 会分配一个对象密钥名称，该名称由每个上传的文件名和文件夹名称组合而成。例如，如果您上传一个名为`sample1.jpg`且`images`包含两个文件的文件夹`sample2.jpg`，Lightsail 会上传这些文件，然后分配相应的密钥名称和。`images/sample1.jpg` `images/sample2.jpg`控制台中的对象显示为 `images` 文件夹中的 `sample1.jpg` 和 `sample2.jpg`。

如果您上传的文件包含已存在的键名，并且您的存储桶*没有启用版本控制*，则新上传的对象将替换上一个对象。但是，如果您的存储桶*启用了版本控制*，Lightsail 会创建对象的新版本，而不是替换现有对象。有关更多信息，请参阅[启用和暂停存储桶中的对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

## 使用 Lightsail 控制台将文件上传到存储桶
<a name="uploading-files-to-a-bucket-lightsail-console"></a>

完成以下过程，使用 Lightsail 控制台上传文件和目录。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

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

1. 选择要将文件夹和文件上传到的存储桶的名称。

1. 在**对象**选项卡中，执行以下操作之一：
   + 将文件和文件夹拖放到**对象**页面。
   + 选择**上传**，然后选择**文件**以上传单个文件，或者选择**目录**以上传文件夹及其所有内容。
**注意**  
您还可以通过选择**创建新文件夹**来创建文件夹。然后，您可以浏览到新文件夹并将文件上传到该文件夹中。

   完成上传后，将显示**上传成功**消息。

## 使用将文件上传到存储桶 AWS CLI
<a name="uploading-files-to-a-bucket-aws-cli"></a>

完成以下过程，以使用 AWS Command Line Interface （AWS CLI）将文件和文件夹上传到存储桶。使用 `put-object` 命令完成此操作。有关更多信息，请参阅《AWS CLI Command Reference》**中的 [PutObject](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)。

**注意**  
在 AWS CLI 继续执行此过程之前，您必须为 Lightsail 和 Amazon S3 安装并对其进行配置。有关更多信息，请参阅[配置为与 Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。 AWS CLI 

1. 打开命令提示符或终端窗口。

1. 输入以下命令以将文件上传到存储桶。

   ```
   aws s3api put-object --bucket BucketName --key ObjectKey --body LocalDirectory --acl bucket-owner-full-control
   ```

   在该命令中，将以下示例文本替换为自己的文本：
   + *BucketName*使用您要将文件上传到的存储桶的名称。
   + *ObjectKey*使用存储桶中对象的完整对象密钥。
   + *LocalDirectory*其中包含要上传的文件的计算机上的本地目录文件夹路径。

   示例：
   + 在 Linux 或 Unix 计算机上：

     ```
     aws s3api put-object --bucket amzn-s3-demo-bucket --key images/sailbot.jpg --body home/user/Pictures/sailbot.jpg --acl bucket-owner-full-control
     ```
   + 在 Windows 计算机上：

     ```
     aws s3api put-object --bucket amzn-s3-demo-bucket --key images/sailbot.jpg --body "C:\Users\user\Pictures\sailbot.jpg" --acl bucket-owner-full-control
     ```

   您会看到类似于以下示例的结果：  
![\[AWS CLI put-object 命令的结果\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-s3api-put-object-result.png)

## 为 IPv6仅限请求配置 AWS CLI
<a name="uploading-files-over-ipv6-only"></a>

Amazon S3 支持通过访问存储桶 IPv6。您可以使用双堆栈终端节点通过 IPv6 Amazon S3 API 调用发出请求。本节提供了如何向双堆栈终端节点发出请求的示例。 IPv6有关更多信息，请参阅 *Amazon S3 用户指南*中的[使用 Amazon S3 双堆栈端点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)。有关设置的说明 AWS CLI，请参阅[配置 AWS Command Line Interface 以与 Amazon Lightsail 配合使用](lightsail-how-to-set-up-and-configure-aws-cli.md)。

**重要**  
访问存储桶的客户端和网络必须支持使用 IPv6。有关更多信息，请参阅可接通[IPv6性。](amazon-lightsail-ipv6-reachability.md)

有两种方法可以从 IPv6仅限实例发出 S3 请求。您可以将配置为 AWS CLI 将所有 Amazon S3 请求定向到指定的 AWS 区域双堆栈终端节点。或者，如果您只想对指定 AWS CLI 命令（不是所有命令）使用双堆栈终端节点，则可以在每个命令中添加 S3 双堆栈终端节点。

配置 AWS CLI  
`true`在您的 AWS Config 文件中的配置文件中将配置值`use_dualstack_endpoint`设置为，以将亚马逊 S3 和 s3api AWS CLI 命令发出的所有 Amazon S3 请求定向到指定区域的双栈终端节点。您可以在 AWS CLI 配置文件中指定区域，也可以使用--region 选项在命令中指定区域。  
输入以下命令以配置 AWS CLI。  

```
aws configure set default.s3.use_dualstack_endpoint true
```

```
aws configure set default.s3.addressing_style virtual
```

将双堆栈端点添加到特定命令中  
您可以通过将任何 s3 或 s3api 命令的 `--endpoint-url` 参数设置为 `https://s3.dualstack.aws-region.amazonaws.com` 或 `http://s3.dualstack.aws-region.amazonaws.com` 来对每条命令使用双堆栈端点。在以下示例中，将*bucketname*和*aws-region*替换为存储桶的名称和您的 AWS 区域。  

```
aws s3api list-objects --bucket bucketname --endpoint-url https://s3.dualstack.aws-region.amazonaws.com
```

## 在 Lightsail 中管理存储桶和对象
<a name="uploading-files-managing-buckets-and-objects"></a>

以下是管理 Lightsail 对象存储桶的一般步骤：

1. 了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息，请参阅 [Amazon Lightsail 中的对象存储](buckets-in-amazon-lightsail.md)。

1. 了解您可以在 Amazon Lightsail 中为存储桶命名的名称。有关更多信息，请参阅 [Amazon Lightsail 中的存储桶命名规则](bucket-naming-rules-in-amazon-lightsail.md)。

1. 通过创建存储分区开始使用 Lightsail 对象存储服务。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶](amazon-lightsail-creating-buckets.md)。

1. 了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有，也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶，以及向其他亚马逊云科技账户授予访问权限，还可以授予对存储桶的访问权限。有关更多信息，请参阅 Amazon Lights [ail 对象存储的安全最佳实践和了解 Amazon Lights](amazon-lightsail-bucket-security-best-practices.md) [ail 中的存储桶权限](amazon-lightsail-understanding-bucket-permissions.md)。

   了解存储桶访问权限后，请参阅以下指南，授予对存储桶的访问权限：
   + [在 Amazon Lightsail 中封锁存储桶的公开访问权限](amazon-lightsail-block-public-access-for-buckets.md)
   + [在 Amazon Lightsail 中配置存储桶访问权限](amazon-lightsail-configuring-bucket-permissions.md)
   + [在 Amazon Lightsail 中为存储段中的单个对象配置访问权限](amazon-lightsail-configuring-individual-object-access.md)
   + [在 Amazon Lightsail 中为存储桶创建访问密钥](amazon-lightsail-creating-bucket-access-keys.md)
   + [在 Amazon Lightsail 中为存储桶配置资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)
   + [在 Amazon Lightsail 中为存储桶配置跨账户访问权限](amazon-lightsail-configuring-bucket-cross-account-access.md)

1. 了解如何为存储桶启用访问日志记录，以及如何使用访问日志来审计存储桶的安全性。有关更多信息，请参阅以下指南。
   + [访问 Amazon Lightsail 对象存储服务中存储桶的日志记录](amazon-lightsail-bucket-access-logs.md)
   + [Amazon Lightsail 对象存储服务中存储桶的访问日志格式](amazon-lightsail-bucket-access-log-format.md)
   + [在 Amazon Lightsail 对象存储服务中为存储段启用访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)
   + [使用 Amazon Lightsail 中存储段的访问日志来识别请求](amazon-lightsail-using-bucket-access-logs.md)

1. 创建一个 IAM 策略，让用户能够在 Lightsail 中管理存储桶。有关更多信息，请参阅在 A [mazon Lightsail 中管理存储桶的 IAM 政策](amazon-lightsail-bucket-management-policies.md)。

1. 了解存储桶中对象的标记和识别方式。有关更多信息，请参阅[了解 Amazon Lightsail 中的对象密钥名称](understanding-bucket-object-key-names-in-amazon-lightsail.md)。

1. 了解如何上传文件和管理存储桶中的对象。有关更多信息，请参阅以下指南。
   + [将文件上传到 Amazon Lightsail 中的存储桶](#amazon-lightsail-uploading-files-to-a-bucket)
   + [使用分段上传将文件上传到 Amazon Lightsail 中的存储桶](amazon-lightsail-uploading-files-to-a-bucket-using-multipart-upload.md)
   + [在 Amazon Lightsail 中查看存储桶中的对象](amazon-lightsail-viewing-objects-in-a-bucket.md)
   + [在 Amazon Lightsail 中复制或移动存储桶中的对象](amazon-lightsail-copying-moving-bucket-objects.md)
   + [从 Amazon Lightsail 中的存储桶下载对象](amazon-lightsail-downloading-bucket-objects.md)
   + [在 Amazon Lightsail 中筛选存储桶中的对象](amazon-lightsail-filtering-bucket-objects.md)
   + [在 Amazon Lightsail 中标记存储桶中的对象](amazon-lightsail-tagging-bucket-objects.md)
   + [在 Amazon Lightsail 中删除存储桶中的对象](amazon-lightsail-deleting-bucket-objects.md)

1. 启用对象版本控制，可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息，请参阅 Amazon Lightsai [l 中的存储桶中启用和暂停对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

1. 启用对象版本控制后，您可以还原存储桶中对象的先前版本。有关更多信息，请参阅在 [Amazon Lightsail 中恢复存储桶中对象的先前版本](amazon-lightsail-restoring-bucket-object-versions.md)。

1. 监控存储桶的利用率。有关更多信息，请参阅[在 Amazon Lightsail 中查看存储桶的指标](amazon-lightsail-viewing-bucket-metrics.md)。

1. 配置存储桶指标的警报，以便在存储桶的利用率超过阈值时收到通知。有关更多信息，请参阅[在 Amazon Lightsail 中创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

1. 如果存储桶的存储和网络传输不足，请更改存储桶的存储套餐。有关更多信息，请参阅[在 Amazon Lightsail 中更改存储桶的计划](amazon-lightsail-changing-bucket-plans.md)。

1. 了解如何将您的存储桶连接到其他资源。有关更多信息，请参阅以下教程。
   + [教程：将 WordPress 实例连接到 Amazon Lightsail 存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)
   + [教程：使用带有 Lightsail 内容分发网络分发的 Amazon Lightsail 存储桶](amazon-lightsail-using-distributions-with-buckets.md)

1. 如果您不再使用存储桶，则将其删除。有关更多信息，请参阅[在 Amazon Lightsail 中删除存储桶](amazon-lightsail-deleting-buckets.md)。

# Lightsail 中的跨源资源共享 (CORS)
<a name="configure-cors"></a>

跨源资源共享 (CORS) 定义了在一个域中加载的客户端 Web 应用程序与另一个域中的资源交互的方式。利用 CORS 支持，您可以使用 Lightsail 对象存储来构建丰富的客户端 Web 应用程序，同时可以选择性地允许跨源访问您的存储桶资源。有关 CORS 的更多信息，请参阅[什么是 CORS？](https://aws.amazon.com/what-is/cross-origin-resource-sharing/)。

本节介绍如何使用 AWS Command Line Interface (AWS CLI) 来为您的 Lightsail 存储桶配置 CORS。要将您的存储桶配置为允许跨源请求，您需要使用 JSON 文档向存储桶添加 CORS 配置，该文档定义了规则，用于指定允许访问存储桶的源、每个源支持的操作（HTTP 方法）以及其他特定于操作的信息。

**Topics**
+ [CORS 使用案例](#cors-use-cases)
+ [Lightsail 如何评估 CORS 配置](cors-how-evaluation-works.md)
+ [使用 AWS CLI 来配置 CORS](cors-configuration-cli.md)
+ [CORS 问题排查](cors-troubleshooting.md)

## CORS 使用案例
<a name="cors-use-cases"></a>

以下示例场景详细说明了您可能需要如何为 Lightsail 存储桶配置 CORS。

**场景：Web 字体托管**  
假设您想要托管来自您 Lightsail 存储桶的 Web 字体。浏览器会要求对正在加载的 Web 字体进行 CORS 检查 (也称为预检)。您可以配置托管 Web 字体的存储桶，以允许任何源发出这些请求。

# Lightsail 如何评估 CORS 配置
<a name="cors-how-evaluation-works"></a>

当 Lightsail 对象存储收到来自浏览器的预检请求后，它将为存储桶评估 CORS 配置，并使用第一个匹配传入浏览器请求的 CORS 规则来实现跨源请求。要使规则实现匹配，必须满足以下条件：
+ 请求中的 `Origin` 标头必须与 `AllowedOrigins` 元素中的源相匹配。
+ `Access-Control-Request-Method` 标头中指定的 HTTP 方法必须与 `AllowedMethods` 元素中的方法相匹配。
+ `Access-Control-Request-Headers` 标头中列出的标头必须与 `AllowedHeaders` 元素中的标头相匹配。

**注意**  
当您在存储桶上启用 CORS 时，存储桶权限仍将继续生效。CORS 配置仅决定浏览器是否允许跨源请求继续执行。有关更多信息，请参阅 [控制对 Lightsail 存储桶和对象的访问权限](amazon-lightsail-understanding-bucket-permissions.md)。

## CORS 配置的元素
<a name="cors-configuration-elements"></a>

CORS 配置是一个包含 CORS 规则数组的 JSON 文档。每条规则都定义了允许访问存储桶的源、允许使用的 HTTP 方法以及其他配置选项。

CORS 规则中可以包含以下元素：

**allowedOrigins**  
指定可以访问该存储桶的源。您可以使用通配符 (\$1) 来允许所有来源，或指定特定域名（如 `https://example.com`）。

**allowedMethods**  
指定可以用于指定源的 HTTP 方法。有效值包括 GET、PUT、POST、DELETE 和 HEAD。

**allowedHeaders**  
通过 Access-Control-Request-Headers 标头来指定预检 OPTIONS 请求中允许哪些标头。

**exposeHeaders**  
指定客户端应用程序可以访问响应中的哪些标头。

**id**  
CORS 规则的唯一标识符。

**maxAgeSeconds**  
指定浏览器可将预检请求的响应缓存的时间长度（以秒为单位）。

有关这些参数的更多信息，请参阅 *Amazon Lightsail API 参考*中的 [BucketCorsRule](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_BucketCorsRule.html)。

# 使用 AWS CLI 来配置 CORS
<a name="cors-configuration-cli"></a>

您可以通过 AWS CLI 使用 `--cors` 参数为您的 Lightsail 存储桶配置 CORS。该参数接受包含 CORS 配置的 JSON 文件。有关 CORS 配置元素的更多信息，请参阅 [CORS 配置的元素](cors-how-evaluation-works.md#cors-configuration-elements)。

**Topics**
+ [应用 CORS 配置](#cors-configuration-apply)
+ [示例 CORS 配置](#cors-configuration-examples)
+ [删除 CORS 配置](#cors-remove-configuration)

## 应用 CORS 配置
<a name="cors-configuration-apply"></a>

以下步骤说明了如何通过指定一个 Json 文件将 CORS 配置应用于存储桶。更多示例配置，请参阅 [示例 CORS 配置](#cors-configuration-examples)。

**要使用 AWS CLI 为存储桶配置 CORS**

1. 创建包含 CORS 配置的 JSON 文件。例如，创建一个名为 `cors-config.json` 的文件，其内容如下：

   ```
   {
     "CORSRules": [
       {
         "AllowedOrigins": ["https://example.com"],
         "AllowedMethods": ["GET", "PUT", "POST"],
         "AllowedHeaders": ["*"],
         "MaxAgeSeconds": 3000
       }
     ]
   }
   ```

1. 使用 AWS CLI 将 CORS 配置应用于您的存储桶：

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --cors file://cors-config.json
   ```

1. 验证 CORS 配置是否已成功应用：

   ```
   aws lightsail get-buckets --bucket-name amzn-s3-demo-bucket --include-cors
   ```

**注意**  
将 *amzn-s3-demo-bucket* 替换为您的 Lightsail 存储桶的名称。

## 示例 CORS 配置
<a name="cors-configuration-examples"></a>

以下示例介绍了不同使用场景中常见的 CORS 配置。

**示例 1：允许所有源和方法**  
此配置允许所有源使用任何 HTTP 方法访问您的存储桶：

```
{
    "CORSRules": [
      {
        "AllowedOrigins": ["*"],
        "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
        "AllowedHeaders": ["*"],
        "MaxAgeSeconds": 3000
      }
    ]
  }
```

**示例 2：限制对特定域的访问**  
此配置仅允许来自 `https://mywebsite.com` 的请求：

```
{
    "CORSRules": [
      {
        "AllowedOrigins": ["https://mywebsite.com"],
        "AllowedMethods": ["GET", "PUT"],
        "AllowedHeaders": ["Authorization", "Content-Type"],
        "ExposeHeaders": ["ETag"],
        "MaxAgeSeconds": 3600
      }
    ]
  }
```

**示例 3：适用于不同源的多个规则**  
此配置为不同的源定义了不同的规则：

```
{
    "CORSRules": [
      {
        "AllowedOrigins": ["https://mywebsite.com"],
        "AllowedMethods": ["GET", "PUT", "POST"],
        "AllowedHeaders": ["*"],
        "MaxAgeSeconds": 3600
      },
      {
        "AllowedOrigins": ["https://cdn.mywebsite.com"],
        "AllowedMethods": ["GET"],
        "AllowedHeaders": ["Authorization"],
        "MaxAgeSeconds": 86400
      }
    ]
  }
```

## 删除 CORS 配置
<a name="cors-remove-configuration"></a>

要从您的存储桶删除 CORS 配置，请使用以下 AWS CLI 命令：

```
aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --cors '{"rules":[]}'
```

**注意**  
将 *amzn-s3-demo-bucket* 替换为您的 Lightsail 存储桶的名称。

删除 CORS 配置后，浏览器将阻止对您的存储桶的跨源请求。

# CORS 问题排查
<a name="cors-troubleshooting"></a>

如果您遇到 CORS 问题，请确认以下各项：
+ **验证 CORS 配置** - 确保您的跨源资源共享 (CORS) 配置采用正确的 JSON 格式，并包含适用于您使用案例的必要规则。
+ **检查源匹配** - 您请求中的源必须与 `AllowedOrigins` 列表中的条目完全匹配。协议 (http/https)、子域名和端口必须完全匹配。
+ **验证 HTTP 方法** - 确保您使用的 HTTP 方法在匹配规则的 `AllowedMethods` 列表中。
+ **查看浏览器开发人员工具** - 使用您浏览器的开发人员工具来检查预检 OPTIONS 请求和响应，以识别任何与 CORS 相关的错误。
+ **验证存储桶权限** - 确保您的存储桶除了 CORS 之外还配置了相应的权限。CORS 仅控制基于浏览器的跨域访问，而不控制存储桶级权限。

如果您在排查错误时需要从存储桶中删除 CORS 配置，请参阅 [删除 CORS 配置](cors-configuration-cli.md#cors-remove-configuration)。