访问和列出 Amazon S3 存储桶 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

访问和列出 Amazon S3 存储桶

您可以使用各种工具列出和访问 Amazon S3 存储桶。查看以下工具,确定哪种方法适合您的使用场景:

  • Amazon S3 控制台:使用 Amazon S3 控制台,您可以轻松访问存储桶并修改存储桶属性。您还可以使用控制台 UI 执行大多数存储桶操作,而不必编写任何代码。

  • Amazon CLI:如果您需要访问多个存储桶,则可以使用 Amazon Command Line Interface(Amazon CLI)自动执行常见任务和重复任务,从而节省时间。随着组织的扩大,常见操作的可脚本化和可重复性是经常考虑的因素。有关更多信息,请参阅《Amazon S3 API 参考》中的 Developing with Amazon S3 using the Amazon CLI

  • Amazon S3 REST API:您可以使用 Amazon S3 REST API 编写自己的程序并以编程方式访问存储桶。在 Amazon S3 支持的 API 架构中,存储桶和对象是资源,各自具有唯一标识资源的资源 URI。有关更多信息,请参阅《Amazon S3 API 参考》中的 Developing with Amazon S3

根据您的 Amazon S3 存储桶的应用场景,建议使用不同方法来访问存储桶中的底层数据。以下列表包括访问数据的常见应用场景。

  • 静态网站 – 您可以使用 Amazon S3 托管静态网站。在此应用场景中,您可以配置 S3 存储桶,使其功能与网站相似。要了解有关在 Amazon S3 上托管网站的步骤的示例,请参阅教程:在 Amazon S3 上配置静态网站

    要托管启用了“屏蔽公共访问权限”等安全设置的静态网站,建议使用带来源访问控制(OAC)的 Amazon CloudFront,并实施其它安全标头,例如 HTTPS。有关更多信息,请参阅安全静态网站入门

    注意

    Amazon S3 针对静态网站访问支持虚拟托管类型路径类型 URL。由于可以使用路径类型和虚拟托管类型 URL 访问存储桶,因此,建议您使用符合 DNS 标准的存储桶名称创建存储桶。有关更多信息,请参阅 存储桶配额、限制和局限性

  • 共享数据集 – 在 Amazon S3 上扩展时,通常会采用多租户模式,即在共享存储桶中为不同的最终客户或业务部门分配唯一前缀。通过使用 Amazon S3 接入点,您可以将一个大型存储桶策略划分为每个需要访问共享数据集的应用程序的独立接入点策略。这种方法可以更轻松地专注于为一个应用程序构建正确的访问策略,而不中断任何其它应用程序在共享数据集中的操作。有关更多信息,请参阅 通过接入点管理对共享数据集的访问

  • 高吞吐量工作负载 – 适用于 Amazon S3 的 Mountpoint 是一款高吞吐量开源文件客户端,用于将 Amazon S3 存储桶作为本地文件系统进行挂载。借助 Mountpoint,您的应用程序可以通过文件系统操作(例如打开和读取)访问存储在 Amazon S3 中的对象。Mountpoint 会自动将这些操作转换为 S3 对象 API 调用,让您的应用程序能够通过文件接口访问 Amazon S3 的弹性存储和吞吐量。有关更多信息,请参阅 使用适用于 Amazon S3 的 Mountpoint

  • 多区域应用程序 – Amazon S3 多区域接入点提供了一个全局端点,应用程序可以使用该端点来满足来自位于多个 Amazon Web Services 区域 中的 S3 存储桶的请求。您可以使用多区域接入点通过单个区域中使用的相同架构构建多区域应用程序,然后在世界任何地方运行这些应用程序。多区域接入点不是通过公共互联网发送请求,而是提供内置的网络韧性,加速向 Amazon S3 发送基于互联网的请求。有关更多信息,请参阅 使用多区域接入点管理多区域流量

  • 构建新应用程序 – 使用 Amazon S3 开发应用程序时,您可以使用 Amazon SDK。Amazon SDK 包装了底层 Amazon S3 REST API,可以简化您的编程任务。要构建互连移动应用程序和 Web 应用程序,您可以使用 Amazon 移动 SDK 和 Amazon Amplify JavaScript 库。有关更多信息,请参阅《Amazon S3 API 参考》中的 Developing with Amazon S3 using the Amazon SDKs

  • 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

列出存储桶

要列出您的所有存储桶,您必须拥有 s3:ListAllMyBuckets 权限。要访问存储桶,请确保您还获得了列出指定存储桶内容所必需的 Amazon Identity and Access Management(IAM)权限。有关授予对 S3 存储桶的访问权限的示例存储桶策略,请参阅允许 IAM 用户访问某个存储桶。如果您遇到 HTTP 拒绝访问(403 禁止)错误,请参阅桶策略和 IAM policy

您可以使用 Amazon S3 控制台、Amazon CLI 或 Amazon SDK 列出存储桶。

  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

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

  3. 通用存储桶列表中,选择您想要查看的存储桶。

    注意

    通用存储桶列表包括位于所有 Amazon Web Services 区域中的存储桶。

要使用 Amazon CLI 访问 S3 存储桶或生成 S3 存储桶列表,请使用 ls 命令。在列出存储桶中的所有对象时,请注意,您必须拥有 s3:ListBucket 权限。

要使用此示例命令,请将 amzn-s3-demo-bucket 替换为您存储桶的名称。

$ aws s3 ls s3://amzn-s3-demo-bucket

以下示例命令将列出您账户中的所有 Amazon S3 存储桶:

$ aws s3 ls

有关更多信息和示例,请参阅列出存储桶和对象

您也可以使用 ListBuckets API 操作访问 Amazon S3 存储桶。有关如何将此操作与不同 Amazon SDK 结合使用的示例,请参阅《Amazon S3 API 参考》中的 Code examples