对象操作
对对象执行以下 Swift API 操作。
删除对象
此操作将从 StorageGRID 系统中删除对象的内容和元数据。
需要以下请求参数:
-
Account
-
Container
-
Object
以下请求标头为必填项:
-
X-Auth-Token
成功执行将返回以下响应标头和 HTTP/1.1 204 No Content
响应:
-
Content-Length
-
Content-Type
-
Date
-
X-Trans-Id
在处理删除对象请求时, StorageGRID 会尝试立即从所有存储位置删除此对象的所有副本。如果成功, StorageGRID 会立即向客户端返回响应。如果无法在 30 秒内删除所有副本(例如,由于某个位置暂时不可用),则 StorageGRID 会将这些副本排队等待删除,然后指示客户端成功删除。
有关如何删除对象的详细信息,请参见有关通过信息生命周期管理来管理对象的说明。
获取对象
此操作将检索对象内容并从 StorageGRID 系统获取对象元数据。
需要以下请求参数:
-
Account
-
Container
-
Object
以下请求标头为必填项:
-
X-Auth-Token
以下请求标头是可选的:
-
Accept-Encoding
-
If-Match
-
If-Modified-Since
-
If-None-Match
-
If-Unmodified-Since
-
Range
成功执行将返回以下标头和 HTTP/1.1 200 OK
响应:
-
Accept-Ranges
-
Content-Disposition
、只有在出现此情况时才返回Content-Disposition
已设置元数据 -
Content-Encoding
、只有在出现此情况时才返回Content-Encoding
已设置元数据 -
Content-Length
-
Content-Type
-
Date
-
ETag
-
Last-Modified
-
X-Timestamp
-
X-Trans-Id
head 对象
此操作将从 StorageGRID 系统检索所载入对象的元数据和属性。
需要以下请求参数:
-
Account
-
Container
-
Object
以下请求标头为必填项:
-
X-Auth-Token
成功执行将返回以下标头并显示 "HTTP/1.1 200 OK" 响应:
-
Accept-Ranges
-
Content-Disposition
、只有在出现此情况时才返回Content-Disposition
已设置元数据 -
Content-Encoding
、只有在出现此情况时才返回Content-Encoding
已设置元数据 -
Content-Length
-
Content-Type
-
Date
-
ETag
-
Last-Modified
-
X-Timestamp
-
X-Trans-Id
PUT 对象
此操作将使用数据和元数据创建新对象,或者将现有对象替换为 StorageGRID 系统中的数据和元数据。
StorageGRID 支持大小高达5 TB的对象。
冲突的客户端请求(例如、写入同一密钥的两个客户端)会按"`latest-WINS`"的原则进行解决。"`latest-WINS`"评估的时间取决于StorageGRID 系统何时完成给定请求、而不是Swift客户端何时开始操作。 |
需要以下请求参数:
-
Account
-
Container
-
Object
以下请求标头为必填项:
-
X-Auth-Token
以下请求标头是可选的:
-
Content-Disposition
-
Content-Encoding
请勿使用分块
Content-Encoding
如果ILM规则要求对对象进行适用场景 筛选、并在载入时使用同步放置(用于载入行为的平衡或严格选项)。 -
Transfer-Encoding
请勿使用压缩或分块
Transfer-Encoding
如果ILM规则要求对对象进行适用场景 筛选、并在载入时使用同步放置(用于载入行为的平衡或严格选项)。 -
Content-Length
如果ILM规则按大小筛选对象并在载入时使用同步放置、则必须指定
Content-Length
。如果不遵循这些准则 Content-Encoding
,Transfer-Encoding
,和Content-Length
、StorageGRID 必须先保存该对象、然后才能确定对象大小并应用ILM规则。换言之, StorageGRID 必须默认为在载入时创建对象的临时副本。也就是说, StorageGRID 必须对载入行为使用双提交选项。有关同步放置和 ILM 规则的详细信息,请参见有关通过信息生命周期管理来管理对象的说明。
-
Content-Type
-
ETag
-
X-Object-Meta-<name\>
(与对象相关的元数据)如果要使用*用户定义的创建时间*选项作为ILM规则的参考时间、则必须将该值存储在名为的用户定义标题中
X-Object-Meta-Creation-Time
。例如:X-Object-Meta-Creation-Time: 1443399726
自 1970 年 1 月 1 日以来,此字段的评估值为秒。
-
X-Storage-Class: reduced_redundancy
如果与所载入对象匹配的 ILM 规则指定了双重提交或平衡的载入行为,则此标头会影响 StorageGRID 创建的对象副本数。
-
* 双提交 * :如果 ILM 规则为载入行为指定了双提交选项,则 StorageGRID 会在载入对象时创建一个临时副本(单个提交)。
-
* 已平衡 * :如果 ILM 规则指定 Balified 选项,则只有在系统无法立即创建规则中指定的所有副本时, StorageGRID 才会创建一个临时副本。如果 StorageGRID 可以执行同步放置,则此标头不起作用。
。
reduced_redundancy
如果与对象匹配的ILM规则创建一个复制副本、则最好使用标题。在这种情况下、使用reduced_redundancy
无需在每次载入操作中创建和删除额外的对象副本。使用
reduced_redundancy
在其他情况下不建议使用标头、因为它会增加载入期间丢失对象数据的风险。例如,如果最初将单个副本存储在发生故障的存储节点上,而此存储节点未能进行 ILM 评估,则可能会丢失数据。在任何一段时间内只复制一个副本会使数据面临永久丢失的风险。如果某个对象只存在一个复制副本,则在存储节点出现故障或出现严重错误时,该对象将丢失。在升级等维护过程中,您还会暂时失去对对象的访问权限。
请注意、请指定
reduced_redundancy
仅影响首次载入对象时创建的副本数。它不会影响在活动 ILM 策略评估对象时创建的对象副本数,也不会导致数据在 StorageGRID 系统中以较低的冗余级别存储。 -
成功执行将返回以下标头,并显示 "HTTP/1.1 201 Created " 响应:
-
Content-Length
-
Content-Type
-
Date
-
ETag
-
Last-Modified
-
X-Trans-Id