Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

获取对象

贡献者

您可以使用 S3 GET 对象请求从 S3 存储分段检索对象。

不支持partnumber请求参数

partNumber GET对象请求不支持请求参数。您不能执行获取请求来检索多部件对象的特定部分。返回501未实施错误、并显示以下消息:

GET Object by partNumber is not implemented

使用客户提供的加密密钥( 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摘要。

重要说明 您提供的加密密钥永远不会存储。如果丢失加密密钥,则会丢失相应的对象。在使用客户提供的密钥保护对象数据之前、请查看"`使用服务器端加密中的注意事项。`

用户元数据中的 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

Cloud Storage Pool 对象的 GET 对象行为

如果某个对象已存储在云存储池中(请参见有关通过信息生命周期管理来管理对象的说明),则 GET 对象请求的行为取决于对象的状态。有关详细信息,请参见 "`head Object` " 。

备注 如果某个对象存储在云存储池中,并且该对象的一个或多个副本也位于网格中,则获取对象请求将尝试从网格中检索数据,然后再从云存储池中检索数据。
对象的状态 GET 对象的行为

对象已载入 StorageGRID 但尚未通过 ILM 进行评估,或者存储在传统存储池中的对象或使用纠删编码

200 OK

检索对象的副本。

云存储池中的对象,但尚未过渡到无法检索的状态

200 OK

检索对象的副本。

对象已过渡到无法检索的状态

403 ForbiddenInvalidObjectState

使用 POST 对象还原请求将对象还原到可检索的状态。

正在从不可检索状态还原的对象

403 ForbiddenInvalidObjectState

等待 POST 对象还原请求完成。

对象已完全还原到云存储池

200 OK

检索对象的副本。

云存储池中的多部分或分段对象

如果您上传的是多部分对象或 StorageGRID 将一个大型对象拆分为多个区块,则 StorageGRID 会通过取样该对象的部分或区块来确定该对象是否在云存储池中可用。在某些情况下、可能会错误地返回GET对象请求 200 OK 对象的某些部分已过渡到无法检索的状态、或者对象的某些部分尚未还原。

在这些情况下:

  • GET 对象请求可能会返回一些数据,但会在传输过程中停止。

  • 可能会返回后续的GET对象请求 403 Forbidden