什么是 Amazon S3?
Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户都可以使用 Amazon S3 存储和保护任意数量的数据,用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT 设备和大数据分析。Amazon S3 提供了管理功能,使您可以优化、组织和配置对数据的访问,以满足您的特定业务、组织和合规性要求。
本指南提供以开发人员为中心的有关使用 Amazon S3 REST API 来构建在云中存储和检索数据的应用程序的信息。
您可以借助任何支持 HTTP 的工具包来使用 REST API。只要对象是匿名可读的,您甚至可以使用浏览器来提取它们。
REST API 使用标准的 HTTP 标头和状态代码,以使标准的浏览器和工具包按预期工作。在某些区域中,我们向 HTTP 添加了功能 (例如,我们添加了标头来支持访问控制)。在这些情况下,我们已尽最大努力使添加的新功能与标准的 HTTP 使用样式相匹配。
注意
HTTP 上的 SOAP 支持已弃用,但是仍可在 HTTPS 上使用。但是,不支持将新的 Amazon S3 功能用于 SOAP。我们建议您使用此 REST API 或以下链接中的 AWS SDK:
本开发人员指南包括:
重要
在阅读特定 API 主题之前,请先阅读以下有关身份验证和访问控制的内容。
对 Amazon S3 的请求可以是经过身份验证的,也可以是匿名的。经过身份验证的访问需要 AWS 可用来对请求进行身份验证的凭证。
API 调用建议
直接从代码中进行 REST API 调用可能会比较繁琐。它要求您编写必要的代码来计算有效的签名,以便对请求进行身份验证。我们建议改用以下替代方法:
-
使用 AWS SDK
发送您的请求。 另请参阅示例代码和库
。 如果您使用 SDK,则无需编写代码来计算用于请求身份验证的签名,因为 SDK 客户端会使用您提供的访问密钥对请求进行身份验证。您应始终使用 AWS SDK,除非您有充分的理由不这样做。
-
使用 AWS CLI 进行 Amazon S3 API 调用。有关设置 AWS CLI 和示例 Amazon S3 命令的信息,请参阅以下主题:
《Amazon Simple Storage Service 用户指南》中的设置 AWS CLI。
《AWS Command Line Interface用户指南》中的在 AWS 命令行界面中使用 Amazon S3。
直接调用 REST API
注意
PUT 请求标头的大小限制为 8KB。在 PUT 请求标头中,系统定义的元数据的大小限制为 2 KB。通过计算每个键和值的 US-ASCII 编码中的字节总数来测量系统定义的元数据的大小。
如果您想进行自己的 REST API 调用,而不是使用上面的替代方法之一,那么需要记住一些事项。
要从您的代码直接调用 REST API,请使用有效的凭证创建签名,并在请求中包含签名。有关各种身份验证方法和签名计算的信息,请参阅对请求进行身份验证(AWS 签名版本 4)。
REST API 使用标准的 HTTP 标头和状态代码,以便标准的浏览器和工具包按预期工作。在某些区域中,我们向 HTTP 添加了功能 (例如,我们添加了标头来支持访问控制)。在这些情况下,我们已尽最大努力使添加的新功能与标准的 HTTP 使用样式相匹配。有关发出请求的更多信息,请参阅提出请求。
权限
您可以使用有效的凭证来对您的请求进行身份验证,但除非您拥有账户拥有者或存储桶拥有者的 S3 权限,否则您无法创建或访问 Amazon S3 资源。这些权限通常通过 AWS Identity and Access Management(IAM)策略授予,例如存储桶策略。例如,您必须拥有创建 S3 存储桶或在存储桶中获取对象的权限。有关 S3 权限的完整列表,请参阅 Amazon S3 的操作、资源和条件键。
有关按 S3 资源类型划分的对于 S3 API 操作的权限的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 Amazon S3 API 操作所需的权限。
如果您使用您的 AWS 账户的根用户凭证,则您拥有所有权限。但是,不建议使用根用户凭证。相反,我们建议您在账户中创建 AWS Identity and Access Management(IAM)角色并管理用户权限。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的访问管理。