

# 访问 Amazon S3 通用存储桶
<a name="access-bucket-intro"></a>

您可以使用 Amazon S3 控制台、Amazon Command Line Interface、Amazon SDK 或 Amazon S3 REST API 访问 Amazon S3 通用存储桶。访问 S3 通用存储桶的每种方法都支持特定的应用场景。有关更多信息，请参阅以下部分。

**Topics**
+ [使用案例](#accessing-use-cases)
+ [Amazon S3 控制台](#accessing-aws-management-console)
+ [Amazon CLI](#accessing-aws-cli)
+ [Amazon SDK](#accessing-aws-sdks)
+ [Amazon S3 REST API](#AccessingUsingRESTAPI)
+ [通用存储桶的虚拟托管](VirtualHosting.md)

## 使用案例
<a name="accessing-use-cases"></a>

根据您的 Amazon S3 通用存储桶的应用场景，建议使用不同方法来访问存储桶中的底层数据。以下列表包括访问数据的常见应用场景。
+ **静态网站** – 您可以使用 Amazon S3 托管静态网站。在此应用场景中，您可以配置 S3 通用存储桶，使其功能与网站相似。要了解有关在 Amazon S3 上托管网站的步骤的示例，请参阅[教程：在 Amazon S3 上配置静态网站](HostingWebsiteOnS3Setup.md)。

  要托管启用了“屏蔽公共访问权限”等安全设置的静态网站，建议使用带来源访问控制（OAC）的 Amazon CloudFront，并实施其它安全标头，例如 HTTPS。有关更多信息，请参阅[安全静态网站入门](https://docs.amazonaws.cn//AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html)。
**注意**  
Amazon S3 针对静态网站访问支持[虚拟托管类型](https://docs.amazonaws.cn/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)和[路径类型 URL](https://docs.amazonaws.cn/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access)。由于可以使用路径类型和虚拟托管类型 URL 访问存储桶，因此，建议您使用符合 DNS 标准的存储桶名称创建存储桶。有关更多信息，请参阅 [通用存储桶配额、限制和局限性](BucketRestrictions.md)。
+ **共享数据集**：在 Amazon S3 上扩展时，通常会采用多租户模式，即在共享通用存储桶中为不同的最终客户或业务部门分配唯一前缀。通过使用 [Amazon S3 接入点](https://docs.amazonaws.cn/AmazonS3/latest/userguide/access-points.html)，您可以将一个大型存储桶策略划分为每个需要访问共享数据集的应用程序的独立接入点策略。这种方法可以更轻松地专注于为一个应用程序构建正确的访问策略，而不中断任何其它应用程序在共享数据集中的操作。有关更多信息，请参阅 [通过接入点管理对共享数据集的访问](access-points.md)。
+ **高吞吐量工作负载**：适用于 Amazon S3 的 Mountpoint 是一款高吞吐量开源文件客户端，用于将 Amazon S3 通用存储桶作为本地文件系统进行挂载。借助 Mountpoint，您的应用程序可以通过文件系统操作（例如打开和读取）访问存储在 Amazon S3 中的对象。Mountpoint 会自动将这些操作转换为 S3 对象 API 调用，让您的应用程序能够通过文件接口访问 Amazon S3 的弹性存储和吞吐量。有关更多信息，请参阅 [将 Amazon S3 存储桶挂载为本地文件系统](mountpoint.md)。
+ **多区域应用程序**：Amazon S3 多区域接入点提供了一个全局端点，应用程序可以使用该端点来满足来自位于多个 Amazon Web Services 区域中的 S3 通用存储桶的请求。您可以使用多区域接入点通过单个区域中使用的相同架构构建多区域应用程序，然后在世界任何地方运行这些应用程序。多区域接入点不是通过公共互联网发送请求，而是提供内置的网络韧性，加速向 Amazon S3 发送基于互联网的请求。有关更多信息，请参阅 [使用多区域接入点管理多区域流量](MultiRegionAccessPoints.md)。
+ **Secure Shell（SSH）文件传输协议（SFTP）**：如果您尝试通过互联网安全地传输敏感数据，则可以将支持 SFTP 的服务器与 Amazon S3 通用存储桶结合使用。Amazon SFTP 是一种网络协议，支持 SSH 的完全安全和身份验证功能。使用此协议，您可以对用户身份、权限和密钥进行精细控制，也可以使用 IAM 策略来管理访问权限。要将支持 SFTP 的服务器与您的 Amazon S3 存储桶相关联，请务必先创建支持 SFTP 的服务器。然后设置用户账户，并将服务器与 Amazon S3 通用存储桶关联。有关此过程的介绍，请参阅 *Amazon 博客*中的 [Amazon Transfer for SFTP – Fully Managed SFTP Service for Amazon S3](https://www.amazonaws.cn/blogs/aws/new-aws-transfer-for-sftp-fully-managed-sftp-service-for-amazon-s3/)。

## Amazon S3 控制台
<a name="accessing-aws-management-console"></a>

控制台是基于 Web 的用户界面，用于管理 Amazon S3 和 Amazon 资源。使用 Amazon S3 控制台，您可以轻松访问存储桶并修改存储桶属性。您还可以使用控制台 UI 执行大多数存储桶操作，而不必编写任何代码。

如果您已注册 Amazon Web Services 账户，您可以通过登录 Amazon S3 控制台并从 Amazon S3 控制台主页中选择 **S3** 来访问 Amazon S3 控制台。您也可以使用此链接直接访问 [https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

## Amazon CLI
<a name="accessing-aws-cli"></a>

可以使用 Amazon CLI，在系统的命令行中发出命令或构建脚本来执行 Amazon（包括 S3）任务。例如，如果您需要访问多个存储桶，则可以使用 Amazon CLI 自动执行常见任务和重复任务，从而节省时间。随着组织的扩大，常见操作的可脚本化和可重复性是经常考虑的因素。

[Amazon CLI](https://www.amazonaws.cn/cli/) 针对大量 Amazon Web Services 服务 提供了相关命令。Amazon CLI 在 Windows、macOS 和 Linux 上受支持。要开始使用，请参阅 [https://docs.amazonaws.cn/cli/latest/userguide/](https://docs.amazonaws.cn/cli/latest/userguide/)。有关 Amazon S3 命令的更多信息，请参阅 *Amazon CLI 一般参考*中的 [s3api](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/index.html) 和 [s3control](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/index.html)。

## Amazon SDK
<a name="accessing-aws-sdks"></a>

Amazon 提供的 SDK（软件开发工具包）包含各种编程语言和平台（Java、Python、Ruby、.NET、iOS、Android 等）的库和示例代码。Amazon SDK 提供便捷的方式来创建对 S3 和 Amazon 的编程访问。Amazon S3 是一项 REST 服务。您可以使用 Amazon SDK 库向 Amazon S3 发送请求，该库包装了底层 Amazon S3 REST API 并简化了编程任务。例如，SDK 负责计算签名、加密签名请求、管理错误和自动重试请求等任务。有关 Amazon SDK 的信息（包括如何下载及安装），请参阅 [适用于 Amazon 的工具 ](https://www.amazonaws.cn/tools/)。

与 Amazon S3 的每一次交互都是经身份验证的或匿名的。如果您使用 Amazon SDK，库根据您提供的密钥计算用于身份验证的签名。有关如何向 Amazon S3 发出请求的更多信息，请参阅 [Making requests](https://docs.amazonaws.cn/AmazonS3/latest/API/MakingRequests.html)。

## Amazon S3 REST API
<a name="AccessingUsingRESTAPI"></a>

Amazon S3 架构的设计与编程语言无关，使用 Amazon 支持的接口来存储和检索对象。您可以访问 S3 和 Amazon 以编程方式使用 Amazon S3 REST API。REST API 是面向 Amazon S3 的 HTTP 接口。借助 REST API，您可以使用标准的 HTTP 请求创建、提取和删除存储桶和对象。

要使用 REST API，您可以借助任何支持 HTTP 的工具包。只要对象是匿名可读的，您甚至可以使用浏览器来提取它们。

REST API 使用标准的 HTTP 标头和状态代码，以使标准的浏览器和工具包按预期工作。在某些区域中，我们向 HTTP 添加了功能 (例如，我们添加了标头来支持访问控制)。在这些情况下，我们已尽最大努力使添加的新功能与标准的 HTTP 使用样式相匹配。

如果您在应用程序中直接调用 REST API，您必须编写代码来计算签名并将它添加到请求中。有关如何向 Amazon S3 发出请求的更多信息，请参阅《Amazon S3 API 参考》**中的 [Making requests](https://docs.amazonaws.cn/AmazonS3/latest/API/MakingRequests.html)。