PUT 对象
您可以使用 S3 PUT 对象请求将对象添加到存储分段中。
解决冲突
冲突的客户端请求(例如、两个客户端写入同一密钥)将按"`latest-WINS`"的原则进行解决。"`latest-WINS`"评估的时间取决于StorageGRID 系统何时完成给定请求、而不是S3客户端何时开始操作。
对象大小
StorageGRID 支持大小高达5 TB的对象。
用户元数据大小
Amazon S3 将每个 PUT 请求标头中用户定义的元数据的大小限制为 2 KB 。StorageGRID 将用户元数据限制为 24 KiB 。用户定义的元数据的大小是通过采用 UTF-8 编码的每个键和值的字节数之和来衡量的。
用户元数据中的 UTF-8 字符
如果某个请求在用户定义的元数据的密钥名称或值中包含(未转义) UTF-8 值,则会未定义 StorageGRID 行为。
StorageGRID 不会解析或解释用户定义的元数据的密钥名称或值中包含的转义 UTF-8 字符。转义的 UTF-8 字符被视为 ASCII 字符:
-
如果用户定义的元数据包含转义的 UTF-8 字符,则 PUT , PUT 对象副本, GET 和 HEAD 请求将成功。
-
StorageGRID 不会返回
x-amz-missing-meta
如果对密钥名称或值的解释值包含不可打印的字符、则为标题。
对象标记限制
您可以在上传新对象时为其添加标记,也可以将其添加到现有对象中。StorageGRID 和 Amazon S3 对每个对象最多支持 10 个标记。与对象关联的标记必须具有唯一的标记密钥。一个标记密钥的长度最多可以是 128 个 Unicode 字符,而标记值的长度最多可以是 256 个 Unicode 字符。密钥和值区分大小写。
对象所有权
在 StorageGRID 中,所有对象均归存储分段所有者帐户所有,包括由非所有者帐户或匿名用户创建的对象。
支持的请求标头
支持以下请求标头:
-
Cache-Control
-
Content-Disposition
-
Content-Encoding
指定时
aws-chunked
适用于Content-Encoding
StorageGRID 不会验证以下各项:-
StorageGRID 不会验证
chunk-signature
针对区块数据。 -
StorageGRID 不会验证您为提供的值
x-amz-decoded-content-length
针对对象。
-
-
Content-Language
-
Content-Length
-
Content-MD5
-
Content-Type
-
Expires
-
Transfer-Encoding
如果出现、则支持分块传输编码
aws-chunked
此外、还会使用有效负载签名。 -
x-amz-meta-
、后跟一个名称-值对、该对包含用户定义的元数据。为用户定义的元数据指定名称 - 值对时,请使用以下通用格式:
x-amz-meta-name: value
如果要使用*用户定义的创建时间*选项作为ILM规则的参考时间、则必须使用
creation-time
作为创建对象时记录的元数据的名称。例如:x-amz-meta-creation-time: 1443399726
的值
creation-time
评估为自1970年1月1日以来的秒数。ILM 规则不能同时使用 * 用户定义的创建时间 * 作为参考时间,也不能使用平衡或严格选项来执行载入行为。创建 ILM 规则时返回错误。 -
x-amz-tagging
-
S3 对象锁定请求标头
-
x-amz-object-lock-mode
-
x-amz-object-lock-retain-until-date
-
x-amz-object-lock-legal-hold
-
-
SSA 请求标头:
-
x-amz-server-side-encryption
-
x-amz-server-side-encryption-customer-key-MD5
-
x-amz-server-side-encryption-customer-key
-
x-amz-server-side-encryption-customer-algorithm
-
请求标头不受支持
不支持以下请求标头:
-
。
x-amz-acl
不支持请求标头。 -
。
x-amz-website-redirect-location
不支持请求标头、将返回XNotImplemented
。
存储类选项
。 x-amz-storage-class
支持请求标头。为提交的值 x-amz-storage-class
影响StorageGRID 在载入期间保护对象数据的方式、而不影响StorageGRID 系统中存储的对象持久副本数(由ILM决定)。
如果与已载入对象匹配的ILM规则对载入行为使用strict选项、则为 x-amz-storage-class
标题无效。
可以使用以下值 x-amz-storage-class
:
-
STANDARD
(默认)-
* 双提交 * :如果 ILM 规则为载入行为指定了双提交选项,则在载入对象后,系统会立即创建该对象的第二个副本并将其分发到其他存储节点(双提交)。评估 ILM 后, StorageGRID 将确定这些初始临时副本是否满足规则中的放置说明。否则,可能需要在不同位置创建新的对象副本,并且可能需要删除初始中间副本。
-
* 已平衡 * :如果 ILM 规则指定 Balified 选项,而 StorageGRID 无法立即创建规则中指定的所有副本,则 StorageGRID 会在不同的存储节点上创建两个临时副本。
如果StorageGRID 可以立即创建ILM规则(同步放置)中指定的所有对象副本、则会显示
x-amz-storage-class
标题无效。
-
-
REDUCED_REDUNDANCY
-
* 双提交 * :如果 ILM 规则为载入行为指定了双提交选项,则 StorageGRID 会在载入对象时创建一个临时副本(单个提交)。
-
* 已平衡 * :如果 ILM 规则指定 Balified 选项,则只有在系统无法立即创建规则中指定的所有副本时, StorageGRID 才会创建一个临时副本。如果 StorageGRID 可以执行同步放置,则此标头不起作用。。
REDUCED_REDUNDANCY
如果与对象匹配的ILM规则创建一个复制副本、则最好使用选项。在这种情况下、使用REDUCED_REDUNDANCY
无需在每次载入操作中创建和删除额外的对象副本。
使用
REDUCED_REDUNDANCY
在其他情况下、不建议使用此选项。REDUCED_REDUNDANCY
增加载入期间对象数据丢失的风险。例如,如果最初将单个副本存储在发生故障的存储节点上,而此存储节点未能进行 ILM 评估,则可能会丢失数据。 -
-
注意 * :在任意时间段内只复制一个副本会使数据面临永久丢失的风险。如果某个对象只存在一个复制副本,则在存储节点出现故障或出现严重错误时,该对象将丢失。在升级等维护过程中,您还会暂时失去对对象的访问权限。
指定 REDUCED_REDUNDANCY
仅影响首次载入对象时创建的副本数。它不会影响在活动 ILM 策略评估对象时创建的对象副本数,也不会导致数据在 StorageGRID 系统中以较低的冗余级别存储。
注意:如果要在启用了S3对象锁定的情况下将对象载入存储分段、则 REDUCED_REDUNDANCY
选项将被忽略。如果要将对象载入旧的合规存储分段、则会显示 REDUCED_REDUNDANCY
选项返回错误。StorageGRID 将始终执行双提交载入,以确保满足合规性要求。
服务器端加密的请求标头
您可以使用以下请求标头通过服务器端加密对对象进行加密。SSE 和 SSI-C 选项是互斥的。
-
* SSE* :如果要使用 StorageGRID 管理的唯一密钥对对象进行加密,请使用以下标题。
-
x-amz-server-side-encryption
-
-
* 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摘要。
-
-
注意: * 您提供的加密密钥永远不会存储。如果丢失加密密钥,则会丢失相应的对象。在使用客户提供的密钥保护对象数据之前、请查看"`使用服务器端加密中的注意事项。`
注:如果使用SSE或SSE-C对对象进行加密、则会忽略任何分段级别或网格级别的加密设置。
版本控制
如果为存储分段启用了版本控制、则为唯一的 versionId
会自动为所存储对象的版本生成。这 versionId
也会使用在响应中返回 x-amz-version-id
响应标头。
如果版本控制已暂停、则存储对象版本时为空 versionId
如果已存在空版本、则该版本将被覆盖。