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

对对象执行的操作

贡献者

本节介绍 StorageGRID 系统如何对对象实施 S3 REST API 操作。

以下条件适用于所有对象操作:

  • StorageGRID 一致性控制 支持对对象执行的所有操作,但以下操作除外:

    • 获取对象 ACL

    • 选项 /

    • PUT 对象合法保留

    • 放置对象保留

    • 选择对象内容

  • 冲突的客户端请求(例如,两个客户端写入同一密钥)将以 " 最新成功 " 为基础进行解决。" 最新赢单 " 评估的时间取决于 StorageGRID 系统何时完成给定请求,而不是 S3 客户端何时开始操作。

  • StorageGRID 存储分段中的所有对象均归存储分段所有者所有,包括由匿名用户或其他帐户创建的对象。

  • 无法通过 S3 访问通过 Swift 载入到 StorageGRID 系统的数据对象。

下表介绍了 StorageGRID 如何实施 S3 REST API 对象操作。

操作 实施

删除对象

不支持多因素身份验证( Multi-Factor Authentication , MFA )和响应标头 x-AMZ-MFA

在处理删除对象请求时, StorageGRID 会尝试立即从所有存储位置删除此对象的所有副本。如果成功, StorageGRID 会立即向客户端返回响应。如果无法在 30 秒内删除所有副本(例如,由于某个位置暂时不可用),则 StorageGRID 会将这些副本排队等待删除,然后指示客户端成功删除。

  • 版本控制 *

要删除特定版本,请求者必须是存储分段所有者,并使用 veversionId Subresource 。使用此子资源将永久删除此版本。如果 veversionId 对应于删除标记,则返回的响应标头 x-AMZ-delete-marker 将设置为 true

  • 如果在已启用版本的存储分段上删除不带 veversionId Subresource 的对象,则会生成删除标记。使用 x-AMZ-version-id 响应标头返回删除标记的 veversionId ,返回的 x-AMZ-delete-marker response 标头设置为 true

  • 如果在版本暂停的分段上删除了不带 veversionId Subresource 的对象,则会永久删除已存在的 "null" 版本或 "null" 删除标记,并生成新的 "null" 删除标记。返回的 x-AMZ-delete-marker 响应标头设置为 true

  • 注意 * :在某些情况下,一个对象可能存在多个删除标记。

删除多个对象

不支持多因素身份验证( Multi-Factor Authentication , MFA )和响应标头 x-AMZ-MFA

可以在同一请求消息中删除多个对象。

删除对象标记

使用 tagging Subresource 从对象中删除所有标记。在所有 Amazon S3 REST API 行为下实施。

  • 版本控制 *

如果未在此请求中指定 veversionId query 参数,则此操作将删除受版本控制的存储分段中最新版本对象的所有标记。如果对象的当前版本为删除标记,则返回 "n MethodNotAllowed " 状态,并将 x-AMZ-delete-marker response 标头设置为 true

获取对象

获取对象 ACL

如果为帐户提供了必要的访问凭据,则此操作将返回肯定响应以及对象所有者的 ID , DisplayName 和权限,指示所有者对对象具有完全访问权限。

获取对象合法保留

获取对象保留

获取对象标记

使用 tagging Subresource 返回对象的所有标记。在所有 Amazon S3 REST API 行为下实施

  • 版本控制 *

如果在请求中未指定 veversionId query 参数,则此操作将返回受版本控制的存储分段中最新版本对象的所有标记。如果对象的当前版本为删除标记,则返回 "n MethodNotAllowed " 状态,并将 x-AMZ-delete-marker response 标头设置为 true

HEAD 对象

后对象还原

PUT 对象

PUT 对象—复制

PUT 对象合法保留

放置对象保留

PUT 对象标记

使用 tagging Subresource 向现有对象添加一组标记。在所有 Amazon S3 REST API 行为下实施

  • 对象标记限制 *

您可以在上传新对象时为其添加标记,也可以将其添加到现有对象中。StorageGRID 和 Amazon S3 对每个对象最多支持 10 个标记。与对象关联的标记必须具有唯一的标记密钥。一个标记密钥的长度最多可以是 128 个 Unicode 字符,而标记值的长度最多可以是 256 个 Unicode 字符。密钥和值区分大小写。

  • 标记更新和载入行为 *

使用 PUT 对象标记更新对象的标记时, StorageGRID 不会重新载入对象。这意味着不会使用匹配 ILM 规则中指定的 " 载入行为 " 选项。通过正常后台 ILM 进程重新评估 ILM 时,更新触发的任何对象放置更改都会进行。

这意味着,如果 ILM 规则对载入行为使用严格选项,则在无法放置所需对象时(例如,由于新需要的位置不可用),不会执行任何操作。更新后的对象会保留其当前位置,直到可以进行所需的位置为止。

  • 解决冲突 *

冲突的客户端请求(例如,两个客户端写入同一密钥)将以 " 最新成功 " 为基础进行解决。" 最新赢单 " 评估的时间取决于 StorageGRID 系统何时完成给定请求,而不是 S3 客户端何时开始操作。

  • 版本控制 *

如果在请求中未指定 veversionId query 参数,则该操作会向受版本控制的存储分段中的对象的最新版本添加标记。如果对象的当前版本为删除标记,则返回 "n MethodNotAllowed " 状态,并将 x-AMZ-delete-marker response 标头设置为 true