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

获取对象

贡献者

您可以使用 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对象请求的行为取决于对象的状态。请参见 "HEAD 对象" 有关详细信息:

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

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

200 OK

检索对象的副本。

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

200 OK

检索对象的副本。

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

403 ForbiddenInvalidObjectState

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

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

403 ForbiddenInvalidObjectState

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

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

200 OK

检索对象的副本。

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

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

在这些情况下:

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

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

获取对象和跨网格复制

如果您使用的是 …​ "网格联盟""跨网格复制" 已为分段启用、则S3客户端可以通过发出GET对象请求来验证对象的复制状态。响应包括特定于StorageGRID的 x-ntap-sg-cgr-replication-status 响应标头、它将具有以下值之一:

网格 复制状态

  • *SUCCESS *:复制成功。

  • *pending *:对象尚未复制。

  • 失败:复制失败并出现永久故障。用户必须解决此错误。

目标

REPRAM:对象已从源网格复制。

备注 StorageGRID 不支持 x-amz-replication-status 标题。