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

对对象执行的操作

贡献者

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

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

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

    • GetObjectAcl

    • OPTIONS /

    • PutObjectLegalHold

    • PutObject保留

    • SelectObjectContent

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

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

  • 通过Swift加热到StorageGRID 系统的数据对象无法通过S3进行访问。

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

操作 实施

DeleteObject

多因素身份验证(MFA)和响应标头 x-amz-mfa 不受支持。

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

版本控制

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

  • 删除对象时不使用 versionId 子资源在已启用版本的存储分段上、将生成删除标记。。 versionId 对于删除标记、使用返回 x-amz-version-id 响应标头和 x-amz-delete-marker 返回的响应标头设置为 true

  • 删除对象时不使用 versionId 子资源在版本暂停的分段上、它会永久删除已存在的"null"版本或"null"删除标记、并生成新的"null"删除标记。。 x-amz-delete-marker 返回的响应标头设置为 true

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

请参见 "使用S3 REST API配置S3对象锁定" 了解如何在监管模式下删除对象版本。

DeleteObjects

(以前称为删除多个对象)

多因素身份验证(MFA)和响应标头 x-amz-mfa 不受支持。

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

请参见 "使用S3 REST API配置S3对象锁定" 了解如何在监管模式下删除对象版本。

DeleteObjectTagging

使用 tagging 用于从对象中删除所有标记的子资源。

版本控制

如果 versionId 请求中未指定查询参数、此操作将从受版本控制的存储分段中的对象的最新版本中删除所有标记。如果对象的当前版本是删除标记、则会返回"NDotAllowed"状态 x-amz-delete-marker 响应标头设置为 true

GetObject

GetObjectAcl

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

GetObjectLegalHold

GetObject保留

GetObjectTagging

使用 tagging 子资源以返回对象的所有标记。

版本控制

如果 versionId 请求中未指定查询参数、此操作将返回受版本控制的存储分段中对象的最新版本中的所有标记。如果对象的当前版本是删除标记、则会返回"NDotAllowed"状态 x-amz-delete-marker 响应标头设置为 true

HeadObject

RestorEObject

PutObject

CopyObject

(以前称为Put Object - Copy)

PutObjectLegalHold

PutObject保留

PutObjectTagging

使用 tagging 用于向现有对象添加一组标记的子资源。

对象标记限制

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

标记更新和加热行为

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

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

解决冲突

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

版本控制

如果 versionId 未在此请求中指定查询参数、此操作会将标记添加到受版本控制的存储分段中的对象的最新版本。如果对象的当前版本是删除标记、则会返回"NDotAllowed"状态 x-amz-delete-marker 响应标头设置为 true

SelectObjectContent