Get Object

2022-09-26 14:15:57

获取某个Object,此操作要求用户对该Object有读权限。

请求语法

GET /bucket-name/object HTTP/1.1
Host: s3-us-east-1.ossfiles.com
Date: GMT Date
Authorization: SignatureValue
Range: bytes=ByteRange(可选)

请求头部

名称 描述
Range 指定文件传输的范围。如,设定 bytes=0-9,表示传送第0到第9这10个字符。 类型:字符串 默认值:无

响应头部

名称 描述
x-amz-meta-* 用户自定义变量,其中一个用处是:用户客户端加密时,秘钥对相关信息基于该字段返回。 类型: 字符串

细节分析

  1. GetObject 通过 range 参数可以支持断点续传,对于比较大的 Object 建议使用该功能。
  2. 如果在请求头中使用 Range 参数;则返回消息中会包含整个文件的长度和此次返回的范围,例如:Content-Range: bytes 0-9/44,表示整个文件长度为44,此次返回的范围为0-9。range 参数可以为"0-9", “-9”, “1-10”, “1-”, 如果参数不符合规范,返回错误 。
  3. 如果文件不存在,返回 404 key not found。

示例

请求示例:

GET /test212/1.txt HTTP/1.1
Authorization: AWS4-HMAC-SHA256 Credential=6a19c6de088ff32ff663287eec8f3b85/20220420/us-east-1/s3/aws4_request,SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=051715b268a742ef283d18498d5fcee8fed2cd0d1a9909f1d05718cfc49037c8
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20220420T090352Z
Host: s3-us-east-1.ossfiles.com

返回示例:

HTTP/1.1 200 OK
Date: Wed, 20 Apr 2022 09:03:48 GMT
Last-Modified: Wed, 20 Apr 2022 16:59:21 GMT
ETag: "a2f83d96f9f0cfda99af9567f3a5c4e0"
Content-Length: 12
Content-Type: text/plain

带range的请求示例:

GET /test212/1.txt HTTP/1.1
Authorization: AWS4-HMAC-SHA256 Credential=6a19c6de088ff32ff663287eec8f3b85/20220420/us-east-1/s3/aws4_request,SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=051715b268a742ef283d18498d5fcee8fed2cd0d1a9909f1d05718cfc49037c8
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20220420T090352Z
Range: bytes=1-2
Host: s3-us-east-1.ossfiles.com

响应示例:

HTTP/1.1 206 OK
Date: Wed, 20 Apr 2022 09:03:48 GMT
Last-Modified: Wed, 20 Apr 2022 16:59:21 GMT
ETag: "a2f83d96f9f0cfda99af9567f3a5c4e0"
Content-Range: bytes 1-2/12
Content-Length: 1
Content-Type: text/plain