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

对存储分段执行的操作

贡献者

对于每个 S3 租户帐户, StorageGRID 系统最多支持 1 , 000 个分段。

存储分段名称限制遵循 AWS US 标准区域限制,但您应进一步将其限制为 DNS 命名约定,以便支持 S3 虚拟托管模式请求。

获取分段(列出对象)和获取分段版本操作支持 StorageGRID 一致性控制。

您可以检查是否已为各个存储分段启用上次访问时间更新。

下表介绍了 StorageGRID 如何实施 S3 REST API 存储分段操作。要执行其中任何操作,必须为帐户提供必要的访问凭据。

操作 实施

删除存储分段

在所有 Amazon S3 REST API 行为下实施。

删除存储分段或

此操作将删除存储分段的 CORS 配置。

删除存储分段加密

此操作将从存储分段中删除默认加密。现有加密对象保持加密状态,但添加到存储分段中的任何新对象不会加密。

删除存储分段生命周期

此操作将从存储分段中删除生命周期配置。

删除存储分段策略

此操作将删除附加到存储分段的策略。

删除存储分段复制

此操作将删除附加到存储分段的复制配置。

删除存储分段标记

此操作使用 tagging 用于从存储分段中删除所有标记的子资源。

获取分段(列出对象)版本 1 和版本 2

此操作将返回一个存储分段中的部分或全部(最多 1 , 000 个)对象。对象的存储类可以具有两个值之一、即使对象是随一起载入的 REDUCED_REDUNDANCY 存储类选项:

  • STANDARD、表示对象存储在由存储节点组成的存储池中。

  • GLACIER、表示对象已移至云存储池指定的外部存储分段。

如果存储分段包含大量前缀相同的已删除密钥、则响应可能包括一些密钥 CommonPrefixes 不包含密钥的。

获取分段 ACL

此操作将返回肯定响应以及存储分段所有者的 ID , DisplayName 和权限,指示所有者对存储分段具有完全访问权限。

获取分段存储器

此操作将返回 cors 存储分段的配置。

获取存储分段加密

此操作将返回存储分段的默认加密配置。

获取存储分段生命周期

此操作将返回存储分段的生命周期配置。

获取存储分段位置

此操作将返回使用设置的区域 LocationConstraint PUT分段请求中的元素。如果存储分段的区域为 us-east-1、将返回该区域的空字符串。

获取存储分段通知

此操作将返回附加到存储分段的通知配置。

获取 Bucket 对象版本

如果对存储分段具有读取访问权限、则此操作将使用 versions 子资源列出了存储分段中所有版本对象的元数据。

获取存储分段策略

此操作将返回附加到存储分段的策略。

获取存储分段复制

此操作将返回附加到存储分段的复制配置。

获取存储分段标记

此操作使用 tagging 用于返回存储分段的所有标记的子资源。

获取存储分段版本控制

此实施使用 versioning 用于返回存储分段版本控制状态的子资源。返回的版本控制状态指示存储分段是"`未版本控制`"还是存储分段是版本"`已启用`"或"已使用`S"。`

获取对象锁定配置

此操作将确定是否为存储分段启用了S3对象锁定。 "使用 S3 对象锁定"

头存储分段

此操作将确定某个存储分段是否存在,并且您有权访问该存储分段。

放入存储分段

此操作将创建一个新存储分段。创建存储分段后,您就会成为存储分段所有者。

  • 存储分段名称必须符合以下规则:

    • 每个 StorageGRID 系统必须是唯一的(而不仅仅是租户帐户中的唯一)。

    • 必须符合 DNS 要求。

    • 必须至少包含 3 个字符,并且不能超过 63 个字符。

    • 可以是一个或多个标签的序列,并使用一个句点分隔相邻标签。每个标签必须以小写字母或数字开头和结尾,并且只能使用小写字母,数字和连字符。

    • 不能与文本格式的 IP 地址类似。

    • 不应在虚拟托管模式请求中使用句点。句点会在验证服务器通配符证书时出现发生原因 问题。

  • 默认情况下、将在中创建分段 us-east-1 区域;但是、您可以使用 LocationConstraint 请求正文中的请求元素以指定其他区域。使用时 LocationConstraint Element中、您必须指定已使用网格管理器或网格管理API定义的区域的确切名称。如果您不知道应使用的区域名称,请联系您的系统管理员。* 注 * :如果 PUT 存储分段请求使用的区域尚未在 StorageGRID 中定义,则会发生错误。

  • 您可以包括 x-amz-bucket-object-lock-enabled 请求标题以创建启用了S3对象锁定的存储分段。

    创建存储分段时,必须启用 S3 对象锁定。创建存储分段后,您无法添加或禁用 S3 对象锁定。S3 对象锁定需要分段版本控制,在创建分段时会自动启用分段版本控制。

放入存储分段箱

此操作会为存储分段设置 CORS 配置,以便存储分段可以处理跨源请求。跨源资源共享( CORS )是一种安全机制,允许一个域中的客户端 Web 应用程序访问不同域中的资源。例如、假设您使用名为的S3存储分段 images 以存储图形。通过设置的CORS配置 images 存储分段中的图像、您可以在网站上显示该存储分段中的图像 http://www.example.com

PUT 存储分段加密

此操作将设置现有存储分段的默认加密状态。启用存储分段级别加密后,添加到存储分段中的任何新对象都会进行加密。 StorageGRID 支持使用 StorageGRID 管理的密钥进行服务器端加密。指定服务器端加密配置规则时、请设置 SSEAlgorithm 参数设置为 AES256`和、请勿使用 `KMSMasterKeyID 参数。

如果对象上传请求已指定加密(即、如果请求包含)、则存储分段默认加密配置将被忽略 x-amz-server-side-encryption-* 请求标题)。

PUT 存储分段生命周期

此操作将为存储分段创建新的生命周期配置或替换现有的生命周期配置。StorageGRID 在一个生命周期配置中最多支持 1 , 000 条生命周期规则。每个规则可以包含以下 XML 元素:

  • 到期日期(天,日期)

  • 非当前版本到期(非当前日期)

  • 筛选器(前缀,标记)

  • Status

  • ID

StorageGRID 不支持以下操作:

  • AbortIncompleteMultipartUpload

  • ExpiredObjectDeleteMarker

  • 过渡

要了解存储分段生命周期中的到期操作如何与 ILM 放置说明交互,请参见使用信息生命周期管理功能管理对象的说明中的 "`ILM 如何在对象的整个生命周期内运行` " 。

  • 注 * :存储分段生命周期配置可用于启用了 S3 对象锁定的存储分段,但传统合规存储分段不支持存储分段生命周期配置。

PUT 存储分段通知

此操作将使用请求正文中包含的通知配置 XML 为存储分段配置通知。您应了解以下实施详细信息:

  • StorageGRID 支持将简单通知服务( SNS )主题作为目标。不支持简单队列服务( SQS )或 Amazon Lambda 端点。

  • 必须将通知目标指定为 StorageGRID 端点的 URN 。可以使用租户管理器或租户管理 API 创建端点。

    要成功配置通知,端点必须存在。如果端点不存在、则为 400 Bad Request 返回错误并显示代码 InvalidArgument

  • 您不能为以下事件类型配置通知。这些事件类型 * 不 * 受支持。

    • s3:ReducedRedundancyLostObject

    • s3:ObjectRestore:Completed

  • 从 StorageGRID 发送的事件通知使用标准 JSON 格式,只是它们不包含某些密钥,而对其他密钥使用特定值,如以下列表所示:

  • * 事件源 *

    sgws:s3

  • * awsRegion*

    不包括

  • * 。 x-AMZ-id-2*

    不包括

  • * arn*

    urn:sgws:s3:::bucket_name

PUT 存储分段策略

此操作将设置附加到存储分段的策略。

PUT 存储分段复制

此操作将使用请求正文中提供的复制配置 XML 为存储分段配置 StorageGRID CloudMirror 复制。对于 CloudMirror 复制,您应了解以下实施详细信息:

  • StorageGRID 仅支持复制配置的 V1 。这意味着、StorageGRID 不支持使用 Filter Element中的规则、并遵循V1中有关删除对象版本的约定。有关详细信息,请参见有关复制配置的 Amazon 文档。

  • 分段复制可以在分版本或未分版本的分段上配置。

  • 您可以在复制配置 XML 的每个规则中指定不同的目标存储分段。一个源存储分段可以复制到多个目标存储分段。

  • 必须将目标分段指定为租户管理器或租户管理 API 中指定的 StorageGRID 端点的 URN 。

    要成功进行复制配置,必须存在此端点。如果端点不存在、则请求将以失败的形式出现 400 Bad Request。错误消息显示: Unable to save the replication policy. The specified endpoint URN does not exist: URN.

  • 您无需指定 Role 在配置XML中。StorageGRID 不使用此值,如果提交,则会忽略此值。

  • 如果在配置XML中省略存储类、则StorageGRID 将使用 STANDARD 默认情况下、存储类。

  • 如果从源存储分段中删除对象或删除源存储分段本身,则跨区域复制行为如下:

    • 如果在复制对象或存储分段之前将其删除,则不会复制此对象 / 存储分段,您也不会收到通知。

    • 如果您在复制对象或存储分段后将其删除,则 StorageGRID 会对跨区域复制的 V1 遵循标准 Amazon S3 删除行为。

放置存储分段标记

此操作使用 tagging 用于为存储分段添加或更新一组标记的子资源。添加存储分段标记时,请注意以下限制:

  • StorageGRID 和 Amazon S3 为每个存储分段最多支持 50 个标签。

  • 与存储分段关联的标记必须具有唯一的标记密钥。一个标记密钥的长度最多可包含 128 个 Unicode 字符。

  • 标记值的长度最多可以为 256 个 Unicode 字符。

  • 密钥和值区分大小写。

PUT 存储分版本

此实施使用 versioning 用于设置现有存储分段的版本控制状态的子资源。您可以使用以下值之一设置版本控制状态:

  • Enabled :为存储分段中的对象启用版本控制。添加到存储分段中的所有对象都会收到唯一的版本 ID 。

  • suspended :为存储分段中的对象禁用版本控制。添加到存储分段中的所有对象都会收到版本ID null

创建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. 规则1仅适用于与前缀匹配的对象 category1/并且具有 key2 的值 tag2。。 Expiration 参数指定与筛选器匹配的对象将在2020年8月22日午夜到期。

  2. 规则2仅适用于与前缀匹配的对象 category2/。。 Expiration 参数指定与筛选器匹配的对象将在载入后100天过期。

    重要说明 指定天数的规则与对象的载入时间相关。如果当前日期超过载入日期加上天数,则在应用生命周期配置后,可能会立即从存储分段中删除某些对象。
  3. 规则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": {}
}