Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用 REST API 创建请求

本节介绍如何使用 REST API 向 Amazon S3 终端节点发出请求。有关 Amazon S3 终端节点的列表,请参阅 AWS General Reference 中的区域和终端节点

在使用 REST API 创建请求时,您可以使用 Amazon S3 终端节点的虚拟托管类型和路径类型 URI。有关更多信息,请参阅 使用 Amazon S3 存储桶

例 虚拟托管类型请求

下面是要求从名为 examplebucket 的存储桶删除 puppy.jpg 文件的虚拟托管类型请求的示例。

Copy
DELETE /puppy.jpg HTTP/1.1 Host: examplebucket.s3-us-west-2.amazonaws.com Date: Mon, 11 Apr 2016 12:00:00 GMT x-amz-date: Mon, 11 Apr 2016 12:00:00 GMT Authorization: authorization string

例 路径类型请求

下面是同一请求的路径类型版本示例。

Copy
DELETE /examplebucket/puppy.jpg HTTP/1.1 Host: s3-us-west-2.amazonaws.com Date: Mon, 11 Apr 2016 12:00:00 GMT x-amz-date: Mon, 11 Apr 2016 12:00:00 GMT Authorization: authorization string

Amazon S3 支持在所有区域进行虚拟托管式和路径式访问。但是,路径式语法要求您在尝试访问存储段时必须使用特定于地区的终端节点。例如,如果您有一个位于 欧洲(爱尔兰) 区域的名为 mybucket 的存储桶,您希望使用路径式语法并且对象名为 puppy.jpg,则正确的 URI 为 http://s3-eu-west-1.amazonaws.com/mybucket/puppy.jpg

您将收到一个“HTTP 响应代码 307 临时重定向”错误和一条消息,该消息指出当您尝试使用含有以下一种内容的路径式语法来访问美国东部 (弗吉尼亚北部) 区域之外的存储桶时,正确的资源 URI 为:

  • http://s3.amazonaws.com

  • 区域的终端节点不同于存储桶所在的终端节点。例如,对在 美国西部(加利福尼亚北部) 区域创建的存储桶使用 http://s3-eu-west-1.amazonaws.com

通过使用 REST API 向双堆栈终端节点发出请求

在使用 REST API 时,您可以通过使用虚拟托管类型或路径类型终端节点名称 (URI) 直接访问双堆栈终端节点。所有 Amazon S3 双堆栈终端节点名称中都包含区域。与标准的仅支持 IPv4 的终端节点不同,虚拟托管类型和路径类型终端节点都使用特定于区域的终端节点名称。

例 虚拟托管类型双堆栈终端节点请求

如下例所示,您可以在 REST 请求中使用虚拟托管类型终端节点,该示例从名为 puppy.jpg 的存储桶检索 examplebucket 对象。

Copy
GET /puppy.jpg HTTP/1.1 Host: examplebucket.s3.dualstack.us-west-2.amazonaws.com Date: Mon, 11 Apr 2016 12:00:00 GMT x-amz-date: Mon, 11 Apr 2016 12:00:00 GMT Authorization: authorization string

例 路径类型双堆栈终端节点请求

如下例所示,您也可以在请求中使用路径类型终端节点。

Copy
GET /examplebucket/puppy.jpg HTTP/1.1 Host: s3.dualstack.us-west-2.amazonaws.com Date: Mon, 11 Apr 2016 12:00:00 GMT x-amz-date: Mon, 11 Apr 2016 12:00:00 GMT Authorization: authorization string

有关双堆栈终端节点的更多信息,请参阅使用 Amazon S3 双堆栈终端节点