获取对象
您可以使用 S3 GET 对象请求从 S3 存储分段检索对象。
获取对象和多部分对象
您可以使用 partNumber
用于检索多部分或分段对象的特定部分的请求参数。。 x-amz-mp-parts-count
响应元素指示对象有多少个零件。
您可以设置 partNumber
对于分段/多部分对象和非分段/非多部分对象、均为1;但是、 x-amz-mp-parts-count
只有分段对象或多部分对象才会返回响应元素。
用户元数据中的 UTF-8 字符
StorageGRID 不会解析或解释用户定义的元数据中的转义 UTF-8 字符。对用户定义的元数据中具有转义UTF-8字符的对象发出的获取请求不会返回 x-amz-missing-meta
如果密钥名称或值包含不可打印的字符、则为标题。
请求标头不受支持
不支持以下请求标头、并返回 XNotImplemented
:
-
x-amz-website-redirect-location
版本控制
如果为 versionId
未指定子资源、此操作将提取受版本控制的存储分段中的对象的最新版本。如果对象的当前版本为删除标记、则会使用返回"`not found`"状态 x-amz-delete-marker
响应标头设置为 true
。
使用客户提供的加密密钥( SSI-C )进行服务器端加密的请求标头
如果使用您提供的唯一密钥对对象进行加密,请使用所有三个标头。
-
x-amz-server-side-encryption-customer-algorithm
:指定AES256
。 -
x-amz-server-side-encryption-customer-key
:指定对象的加密密钥。 -
x-amz-server-side-encryption-customer-key-MD5
:指定对象加密密钥的MD5摘要。
您提供的加密密钥永远不会存储。如果丢失加密密钥,则会丢失相应的对象。在使用客户提供的密钥保护对象数据之前、请查看中的注意事项 "使用服务器端加密"。 |
Cloud Storage Pool 对象的 GET 对象行为
如果某个对象存储在云存储池中,并且该对象的一个或多个副本也位于网格中,则获取对象请求将尝试从网格中检索数据,然后再从云存储池中检索数据。 |
对象的状态 | GET 对象的行为 |
---|---|
对象已载入 StorageGRID 但尚未通过 ILM 进行评估,或者存储在传统存储池中的对象或使用纠删编码 |
检索对象的副本。 |
云存储池中的对象,但尚未过渡到无法检索的状态 |
检索对象的副本。 |
对象已过渡到无法检索的状态 |
使用 "后对象还原" 请求将对象还原到可检索状态。 |
正在从不可检索状态还原的对象 |
等待 POST 对象还原请求完成。 |
对象已完全还原到云存储池 |
检索对象的副本。 |
云存储池中的多部分或分段对象
如果您上传的是多部分对象或 StorageGRID 将一个大型对象拆分为多个区块,则 StorageGRID 会通过取样该对象的部分或区块来确定该对象是否在云存储池中可用。在某些情况下、可能会错误地返回GET对象请求 200 OK
对象的某些部分已过渡到无法检索的状态、或者对象的某些部分尚未还原。
在这些情况下:
-
GET 对象请求可能会返回一些数据,但会在传输过程中停止。
-
可能会返回后续的GET对象请求
403 Forbidden
。