对存储分段执行的操作
对于每个 S3 租户帐户, StorageGRID 系统最多支持 1 , 000 个分段。
存储分段名称限制遵循 AWS US 标准区域限制,但您应进一步将其限制为 DNS 命名约定,以便支持 S3 虚拟托管模式请求。
获取分段(列出对象)和获取分段版本操作支持 StorageGRID 一致性控制。
您可以检查是否已为各个存储分段启用上次访问时间更新。
下表介绍了 StorageGRID 如何实施 S3 REST API 存储分段操作。要执行其中任何操作,必须为帐户提供必要的访问凭据。
操作 | 实施 |
---|---|
删除存储分段 |
在所有 Amazon S3 REST API 行为下实施。 |
删除存储分段或 |
此操作将删除存储分段的 CORS 配置。 |
删除存储分段加密 |
此操作将从存储分段中删除默认加密。现有加密对象保持加密状态,但添加到存储分段中的任何新对象不会加密。 |
删除存储分段生命周期 |
此操作将从存储分段中删除生命周期配置。 |
删除存储分段策略 |
此操作将删除附加到存储分段的策略。 |
删除存储分段复制 |
此操作将删除附加到存储分段的复制配置。 |
删除存储分段标记 |
此操作使用 |
获取分段(列出对象)版本 1 和版本 2 |
此操作将返回一个存储分段中的部分或全部(最多 1 , 000 个)对象。对象的存储类可以具有两个值之一、即使对象是随一起载入的
如果存储分段包含大量前缀相同的已删除密钥、则响应可能包括一些密钥 |
获取分段 ACL |
此操作将返回肯定响应以及存储分段所有者的 ID , DisplayName 和权限,指示所有者对存储分段具有完全访问权限。 |
获取分段存储器 |
此操作将返回 |
获取存储分段加密 |
此操作将返回存储分段的默认加密配置。 |
获取存储分段生命周期 |
此操作将返回存储分段的生命周期配置。 |
获取存储分段位置 |
此操作将返回使用设置的区域 |
获取存储分段通知 |
此操作将返回附加到存储分段的通知配置。 |
获取 Bucket 对象版本 |
如果对存储分段具有读取访问权限、则此操作将使用 |
获取存储分段策略 |
此操作将返回附加到存储分段的策略。 |
获取存储分段复制 |
此操作将返回附加到存储分段的复制配置。 |
获取存储分段标记 |
此操作使用 |
获取存储分段版本控制 |
此实施使用 |
获取对象锁定配置 |
此操作将确定是否为存储分段启用了S3对象锁定。 "使用 S3 对象锁定" |
头存储分段 |
此操作将确定某个存储分段是否存在,并且您有权访问该存储分段。 |
放入存储分段 |
此操作将创建一个新存储分段。创建存储分段后,您就会成为存储分段所有者。
|
放入存储分段箱 |
此操作会为存储分段设置 CORS 配置,以便存储分段可以处理跨源请求。跨源资源共享( CORS )是一种安全机制,允许一个域中的客户端 Web 应用程序访问不同域中的资源。例如、假设您使用名为的S3存储分段 |
PUT 存储分段加密 |
此操作将设置现有存储分段的默认加密状态。启用存储分段级别加密后,添加到存储分段中的任何新对象都会进行加密。 StorageGRID 支持使用 StorageGRID 管理的密钥进行服务器端加密。指定服务器端加密配置规则时、请设置 如果对象上传请求已指定加密(即、如果请求包含)、则存储分段默认加密配置将被忽略 |
PUT 存储分段生命周期 |
此操作将为存储分段创建新的生命周期配置或替换现有的生命周期配置。StorageGRID 在一个生命周期配置中最多支持 1 , 000 条生命周期规则。每个规则可以包含以下 XML 元素:
StorageGRID 不支持以下操作:
要了解存储分段生命周期中的到期操作如何与 ILM 放置说明交互,请参见使用信息生命周期管理功能管理对象的说明中的 "`ILM 如何在对象的整个生命周期内运行` " 。
|
PUT 存储分段通知 |
此操作将使用请求正文中包含的通知配置 XML 为存储分段配置通知。您应了解以下实施详细信息:
|
PUT 存储分段策略 |
此操作将设置附加到存储分段的策略。 |
PUT 存储分段复制 |
此操作将使用请求正文中提供的复制配置 XML 为存储分段配置 StorageGRID CloudMirror 复制。对于 CloudMirror 复制,您应了解以下实施详细信息:
|
放置存储分段标记 |
此操作使用
|
PUT 存储分版本 |
此实施使用
|
创建S3生命周期配置
您可以创建 S3 生命周期配置,以控制何时从 StorageGRID 系统中删除特定对象。
本节中的简单示例说明了 S3 生命周期配置如何控制从特定 S3 存储分段中删除(过期)某些对象的时间。本节中的示例仅供说明。有关创建S3生命周期配置的完整详细信息、请参见_Amazon Simple Storage Service开发人员指南_中有关对象生命周期管理的章节。请注意, StorageGRID 仅支持到期操作,不支持过渡操作。
什么是生命周期配置
生命周期配置是一组应用于特定 S3 分段中的对象的规则。每个规则都指定受影响的对象以及这些对象的到期时间(在特定日期或一定天数后)。
StorageGRID 在一个生命周期配置中最多支持 1 , 000 条生命周期规则。每个规则可以包含以下 XML 元素:
-
到期日期:从对象载入开始,在达到指定日期或达到指定天数时删除对象。
-
NoncurrentVersionExpiration :从对象变为非最新状态开始,在达到指定天数时删除对象。
-
筛选器(前缀,标记)
-
Status
-
ID
如果将生命周期配置应用于某个存储分段,则存储分段的生命周期设置始终会覆盖 StorageGRID ILM 设置。StorageGRID 使用存储分段的 " 到期 " 设置(而不是 ILM )来确定是删除还是保留特定对象。
因此,即使 ILM 规则中的放置说明仍适用于某个对象,该对象也可能会从网格中删除。或者,即使对象的任何 ILM 放置指令已失效,该对象也可能会保留在网格中。有关详细信息、请参见使用信息生命周期管理管理对象的说明中的"`ILM在对象的整个生命周期中的运行方式`"。
存储分段生命周期配置可用于启用了 S3 对象锁定的存储分段,但旧版合规存储分段不支持存储分段生命周期配置。 |
StorageGRID 支持使用以下存储分段操作来管理生命周期配置:
-
删除存储分段生命周期
-
获取存储分段生命周期
-
PUT 存储分段生命周期
创建生命周期配置
作为创建生命周期配置的第一步,您需要创建一个包含一个或多个规则的 JSON 文件。例如,此 JSON 文件包含三个规则,如下所示:
-
规则1仅适用于与前缀匹配的对象
category1
/并且具有key2
的值tag2
。。Expiration
参数指定与筛选器匹配的对象将在2020年8月22日午夜到期。 -
规则2仅适用于与前缀匹配的对象
category2
/。。Expiration
参数指定与筛选器匹配的对象将在载入后100天过期。指定天数的规则与对象的载入时间相关。如果当前日期超过载入日期加上天数,则在应用生命周期配置后,可能会立即从存储分段中删除某些对象。 -
规则3仅适用于与前缀匹配的对象
category3
/。。Expiration
参数指定任何非最新版本的匹配对象将在其变为非最新状态50天后过期。
{ "Rules": [ { "ID": "rule1", "Filter": { "And": { "Prefix": "category1/", "Tags": [ { "Key": "key2", "Value": "tag2" } ] } }, "Expiration": { "Date": "2020-08-22T00:00:00Z" }, "Status": "Enabled" }, { "ID": "rule2", "Filter": { "Prefix": "category2/" }, "Expiration": { "Days": 100 }, "Status": "Enabled" }, { "ID": "rule3", "Filter": { "Prefix": "category3/" }, "NoncurrentVersionExpiration": { "NoncurrentDays": 50 }, "Status": "Enabled" } ] }
将生命周期配置应用于存储分段
创建生命周期配置文件后,您可以通过发出 PUT 存储分段生命周期请求将其应用于存储分段。
此请求会将示例文件中的生命周期配置应用于名为的存储分段中的对象 testbucket
:分段
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
要验证是否已成功将生命周期配置应用于存储分段,请发送问题描述 获取存储分段生命周期请求。例如:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
成功的响应将列出您刚刚应用的生命周期配置。
验证存储分段生命周期到期适用场景 对象
在发出 PUT 对象, HEAD 对象或 GET 对象请求时,您可以确定生命周期配置适用场景 中的到期规则是否为特定对象。如果规则适用、响应将包括 Expiration
此参数用于指示对象何时到期以及匹配的到期规则。
由于存储分段生命周期会覆盖ILM、因此 expiry-date 显示的是删除对象的实际日期。有关详细信息、请参见执行StorageGRID 管理的说明中的"`如何确定对象保留`"。
|
例如、此PUT对象请求是在2020年6月22日发出的、并在中放置一个对象 testbucket
存储分段。
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
成功响应表示此对象将在 100 天后( 2020 年 10 月 1 日)过期,并且与生命周期配置的规则 2 匹配。
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
例如,此 head Object 请求用于获取测试分段中同一对象的元数据。
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
成功响应包括对象的元数据,并指示对象将在 100 天后过期,并且与规则 2 匹配。
{
"AcceptRanges": "bytes",
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"",
"LastModified": "2020-06-23T09:07:48+00:00",
"ContentLength": 921,
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
"ContentType": "binary/octet-stream",
"Metadata": {}
}