3.3. S3 存储桶操作
作为开发者,您可以通过 Ceph 对象网关通过 Amazon S3 应用编程接口(API)执行存储桶操作。
下表列出了存储桶的 Amazon S3 功能操作,以及功能的支持状态。
| 功能 | Status | 备注 |
|---|---|---|
| 支持 | ||
| 支持 | 不同的一组可实施 ACL。 | |
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 部分支持 |
支持 | |
| 部分支持 |
支持 | |
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | 不同的可处理 ACL 集 | |
| 支持 | 不同的可处理 ACL 集 | |
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 部分支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 支持 |
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- RESTful 客户端。
3.3.1. S3 创建存储桶通知 复制链接链接已复制到粘贴板!
在 bucket 级别上创建 bucket 通知。通知配置具有 Red Hat Ceph Storage 对象网关 S3 事件、ObjectCreated、ObjectRemoved 和 ObjectLifecycle:Expiration。这些需要发布,以及发送 bucket 通知的目的地。bucket 通知是 S3 操作。
要为 s3:objectCreate,s3:objectRemove 和 s3:ObjectLifecycle:Expiration 事件创建一个存储桶通知,请使用 PUT:
示例
client.put_bucket_notification_configuration(
Bucket=bucket_name,
NotificationConfiguration={
'TopicConfigurations': [
{
'Id': notification_name,
'TopicArn': topic_arn,
'Events': ['s3:ObjectCreated:*', 's3:ObjectRemoved:*', 's3:ObjectLifecycle:Expiration:*']
}]})
红帽支持 ObjectCreate 事件,如 put, post, multipartUpload, 和 copy。红帽还支持 ObjectRemove 事件,如 object_delete 和 s3_multi_object_delete。
请求实体
NotificationConfiguration- 描述
-
TopicConfiguration实体列表。 - Type
- Container
- 必需
- 是
TopicConfiguration- 描述
-
事件主题的
Id,Topic和list。 - Type
- Container
- 必需
- 是
id- 描述
- 通知的名称。
- Type
- 字符串
- 必需
- 是
Topic- 描述
Topic Amazon Resource Name(ARN)
注意必须事先创建主题。
- Type
- 字符串
- 必需
- 是
事件- 描述
- 支持的事件列表。可以使用多个事件实体。如果省略,则处理所有事件。
- Type
- 字符串
- 必填
- 否
Filter- 描述
-
S3Key、S3Metadata和S3Tags实体。 - Type
- Container
- 必需
- 否
S3Key- 描述
-
FilterRule实体列表,用于根据对象密钥进行过滤。列表中最多可以有 3 个实体,例如,Name为prefix,suffix, 或regex。列表中的所有过滤规则必须与过滤器匹配。 - Type
- Container
- 必需
- 否
S3Metadata- 描述
-
FilterRule实体列表,用于根据对象元数据进行过滤。列表中的所有过滤规则必须与对象中定义的元数据匹配。但是,如果对象具有过滤器中没有列出的其他元数据条目,则对象仍然匹配。 - 类型
- Container
- 必需
- 否
S3Tags- 描述
-
FilterRule实体列表,用于根据对象标签进行过滤。列表中的所有过滤规则必须与对象中定义的标签匹配。但是,如果对象没有列在过滤器中,则对象仍然匹配。 - Type
- Container
- 必需
- 否
S3Key.FilterRule- 描述
-
Name和Value实体。Name 为:prefix,suffix, 或regex.Value将保存用于相应地匹配密钥的密钥前缀、密钥后缀或正则表达式。 - Type
- Container
- 必需
- 是
S3Metadata.FilterRule- 描述
-
Name和Value实体。name 是x-amz-meta-xxx等 metadata 属性的名称。该值是此属性的预期值。 - Type
- Container
- 必需
- 是
S3Tags.FilterRule- 描述
-
Name和Value实体。name 是 tag 键,值为 tag 值。 - Type
- Container
- 必需
- 是
HTTP 响应
400- 状态代码
-
MalformedXML - 描述
- XML 的格式不正确。
400- 状态代码
-
InvalidArgument - 描述
- 缺少 Id 或缺失或无效的主题 ARN 或无效事件。
404- 状态代码
-
NoSuchBucket - 描述
- bucket 不存在。
404- 状态代码
-
NoSuchKey - 描述
- 主题不存在。