StorageGRID 中的 S3 存储桶操作和实施详细信息
StorageGRID 系统为每个 S3 租户帐户最多支持 5,000 个存储桶。
每个网格最多可包含 100,000 个存储桶。
要支持 5,000 个存储桶,网格中的每个存储节点必须至少有 64 GB RAM。
存储桶名称限制遵循 AWS US Standard 区域限制,但应进一步将其限制为 DNS 命名约定,以支持 S3 虚拟托管式请求。
有关详细信息,请参见以下内容:
ListObjects (GET Bucket) 和 ListObjectVersions (GET Bucket object versions) 操作支持 StorageGRID "一致性值"。
您可以检查是否为单个存储桶启用或禁用了对上次访问时间的更新。请参阅 "获取 Bucket 上次访问时间"。
下表描述了 StorageGRID 如何实现 S3 REST API 存储桶操作。要执行任何这些操作,必须为帐户提供必要的访问凭据。
| 操作 | 实施 |
|---|---|
CreateBucket |
创建一个新存储桶。通过创建存储桶,您将成为存储桶所有者。
|
DeleteBucket |
删除存储桶。 |
DeleteBucketCors |
删除存储区的 CORS 配置。 |
DeleteBucketEncryption |
从存储桶中删除默认加密。现有的加密对象保持加密状态,但添加到存储桶的任何新对象都不会被加密。 |
DeleteBucketLifecycle |
从存储桶中删除生命周期配置。请参阅"创建 S3 生命周期配置"。 |
DeleteBucketPolicy |
删除附加到存储区的策略。 |
DeleteBucketReplication |
删除附加到存储区的复制配置。 |
DeleteBucketTagging |
使用 注意:如果为此存储桶设置了非默认 ILM 策略标记,则将存在一个分配了值的 |
GetBucketAcl |
返回肯定响应以及存储桶所有者的 ID、DisplayName 和权限,指示所有者对存储桶具有完全访问权限。 |
GetBucketCors |
返回存储桶的 `cors`配置。 |
GetBucketEncryption |
返回存储区的默认加密配置。 |
GetBucketLifecycleConfiguration (先前命名为GET Bucket lifecycle) |
返回存储桶的生命周期配置。请参阅 "创建 S3 生命周期配置"。 |
GetBucketLocation |
返回使用 CreateBucket 请求中的 |
GetBucketNotificationConfiguration (先前命名为GET Bucket notification) |
返回附加到存储桶的通知配置。 |
GetBucketPolicy |
返回附加到存储桶的策略。 |
GetBucketReplication |
返回附加到存储区的复制配置。 |
GetBucketTagging |
使用 注意:如果为此存储桶设置了非默认 ILM 策略标记,则将存在一个 `NTAP-SG-ILM-BUCKET-TAG`存储桶标记,并为其分配了值。请勿修改或删除此标签。 |
GetBucketVersioning |
此实现使用
|
GetObjectLockConfiguration |
返回存储区默认保留模式和默认保留期限(如果已配置)。 |
HeadBucket |
确定存储桶是否存在,以及您是否有权访问它。 此操作将返回:
|
ListObjects 和 ListObjectsV2 (先前命名为 GET Bucket) |
返回存储桶中的部分或全部(最多 1,000 个)对象。对象的存储类可以具有两个值之一,即使对象是使用 `REDUCED_REDUNDANCY`存储类选项接收的:
如果存储桶包含大量具有相同前缀的已删除密钥,则响应可能包含一些 `CommonPrefixes`不包含密钥的内容。 对于 HeadObject 和 ListObject 请求,StorageGRID 以不同的精度返回 LastModified 时间戳,而 AWS 以相同的精度返回时间戳,如以下示例所示:
|
ListObjectVersions (先前命名为 GET Bucket Object versions) |
在存储桶上具有读取权限时,将此操作与 `versions`子资源一起使用会列出存储桶中对象的所有版本的元数据。 |
PutBucketCors |
设置存储桶的 CORS 配置,以便存储桶可以为跨源请求提供服务。跨域资源共享 (CORS) 是一种安全机制,允许一个域中的客户端 Web 应用程序访问不同域中的资源。例如,假设您使用名为 `images`的 S3 存储桶来存储图形。通过设置 `images`存储桶的 CORS 配置,您可以允许该存储桶中的图像显示在网站 `http://www.example.com`上。 |
PutBucketEncryption |
设置现有存储桶的默认加密状态。启用存储桶级加密后,添加到存储桶的任何新对象都将被加密。StorageGRID 支持使用 StorageGRID 管理的密钥进行服务器端加密。指定服务器端加密配置规则时,请将 如果对象上传请求已指定加密(即,如果请求包括 `x-amz-server-side-encryption-*`请求标头),则会忽略存储桶默认加密配置。 |
PutBucketLifecycleConfiguration (先前命名为PUT Bucket lifecycle) |
为存储桶创建新的生命周期配置或替换现有的生命周期配置。StorageGRID 在生命周期配置中最多支持 1,000 条生命周期规则。每条规则可以包含以下 XML 元素:
StorageGRID 不支持以下操作:
请参见"创建 S3 生命周期配置"。要了解存储桶生命周期中的过期操作如何与 ILM 放置说明交互,请参见"ILM在对象整个生命周期中的运作方式"。 注意:存储桶生命周期配置可用于启用了 S3 Object Lock 的存储桶,但旧版合规存储桶不支持存储桶生命周期配置。 |
PutBucketNotificationConfiguration (先前命名的 PUT Bucket notification) |
使用请求正文中包含的通知配置 XML 配置存储区的通知。您应了解以下实施细节:
|
PutBucketPolicy |
设置附加到存储桶的策略。请参阅 "使用存储区和组访问策略"。 |
PutBucketReplication |
使用请求正文中提供的复制配置 XML 为存储桶配置 "StorageGRID CloudMirror 复制"。对于 CloudMirror 复制,您应该了解以下实施详情:
|
PutBucketTagging |
使用 `tagging`子资源为存储桶添加或更新一组标记。添加存储桶标签时,请注意以下限制:
注意:如果为此存储桶设置了非默认 ILM 策略标记,则将存在一个 `NTAP-SG-ILM-BUCKET-TAG`存储桶标记,并为其分配了值。确保在所有 PutBucketTagging 请求中包含带有分配值的 `NTAP-SG-ILM-BUCKET-TAG`存储桶标记。请勿修改或删除此标记。 注意:此操作将覆盖存储桶已有的任何当前标记。如果从集合中省略了任何现有标记,则这些标记将从存储桶中删除。 |
PutBucketVersioning |
使用
|
PutObjectLockConfiguration |
配置或删除存储桶默认保留模式和默认保留期限。 如果修改了默认保留期限,则现有对象版本的 retain-until-date 保持不变,并且不会使用新的默认保留期限重新计算。 有关详细信息,请参见 "使用 S3 REST API 配置 S3 对象锁定"。 |