7.9. bucket 管理


作为存储管理员,在使用 Ceph 对象网关时,您可以通过在用户之间移动 bucket 并将它们重命名来管理存储桶。您可以创建存储桶通知,在特定事件时触发。此外,您可以在 Ceph 对象网关中发现在存储集群的生命周期内可能会发生孤立或泄漏的对象。

注意

当数百万对象上传到具有高最高速率的 Ceph 对象网关 bucket 时,使用 radosgw-admin bucket stats 命令报告不正确的 num_objects。使用 radosgw-admin bucket list 命令,您可以更正 num_objects 参数的值。

注意

radosgw-admin bucket stats 命令不会返回 Unknown error 2002 错误,并明确转换为 POSIX 错误 2,如 "No such file or directory" 错误。

注意

在多站点集群中,从次要站点中删除存储桶不会与主站点同步元数据更改。因此,红帽建议只从主站点中删除存储桶,而不是从次要站点中删除存储桶。

7.9.1. 重命名存储桶

您可以重命名存储桶。如果要在存储桶名称中允许下划线,请将 rgw_relaxed_s3_bucket_names 选项设置为 true

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关软件.
  • 一个现有存储桶。

流程

  1. 列出存储桶:

    示例

    [ceph: root@host01 /]# radosgw-admin bucket list
    [
        "34150b2e9174475db8e191c188e920f6/swcontainer",
        "s3bucket1",
        "34150b2e9174475db8e191c188e920f6/swimpfalse",
        "c278edd68cfb4705bb3e07837c7ad1a8/ec2container",
        "c278edd68cfb4705bb3e07837c7ad1a8/demoten1",
        "c278edd68cfb4705bb3e07837c7ad1a8/demo-ct",
        "c278edd68cfb4705bb3e07837c7ad1a8/demopostup",
        "34150b2e9174475db8e191c188e920f6/postimpfalse",
        "c278edd68cfb4705bb3e07837c7ad1a8/demoten2",
        "c278edd68cfb4705bb3e07837c7ad1a8/postupsw"
    ]
    Copy to Clipboard Toggle word wrap

  2. 重命名存储桶:

    语法

    radosgw-admin bucket link --bucket=ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=USER_ID
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket link --bucket=s3bucket1 --bucket-new-name=s3newb --uid=testuser
    Copy to Clipboard Toggle word wrap

    如果存储桶位于租户中,还要指定租户:

    语法

    radosgw-admin bucket link --bucket=tenant/ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=TENANT$USER_ID
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/s3bucket1 --bucket-new-name=s3newb --uid=test$testuser
    Copy to Clipboard Toggle word wrap

  3. 验证存储桶已被重命名:

    示例

    [ceph: root@host01 /]# radosgw-admin bucket list
    [
        "34150b2e9174475db8e191c188e920f6/swcontainer",
        "34150b2e9174475db8e191c188e920f6/swimpfalse",
        "c278edd68cfb4705bb3e07837c7ad1a8/ec2container",
        "s3newb",
        "c278edd68cfb4705bb3e07837c7ad1a8/demoten1",
        "c278edd68cfb4705bb3e07837c7ad1a8/demo-ct",
        "c278edd68cfb4705bb3e07837c7ad1a8/demopostup",
        "34150b2e9174475db8e191c188e920f6/postimpfalse",
        "c278edd68cfb4705bb3e07837c7ad1a8/demoten2",
        "c278edd68cfb4705bb3e07837c7ad1a8/postupsw"
    ]
    Copy to Clipboard Toggle word wrap

7.9.2. 移动存储桶

radosgw-admin bucket 实用程序提供在用户之间移动 bucket 的功能。为此,请将存储桶链接到新用户,并将 bucket 的所有权更改为新用户。

您可以移动存储桶:

7.9.2.1. 先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 已安装 Ceph 对象网关。
  • S3 存储桶。
  • 各种租户和非租户用户。

7.9.2.2. 在非租户用户之间移动存储桶

radosgw-admin bucket chown 命令提供将 bucket 的所有权及其包含的所有对象从一个用户更改为另一个用户的功能。为此,请从当前用户取消链接存储桶,将它链接到新用户,然后将 bucket 的所有权更改为新用户。

流程

  1. 将存储桶链接到一个新用户:

    语法

    radosgw-admin bucket link --uid=USER --bucket=BUCKET
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket link --uid=user2 --bucket=data
    Copy to Clipboard Toggle word wrap

  2. 验证存储桶已成功链接到 user2

    示例

    [ceph: root@host01 /]# radosgw-admin bucket list --uid=user2
    [
        "data"
    ]
    Copy to Clipboard Toggle word wrap

  3. 将存储桶的所有权更改为新用户:

    语法

    radosgw-admin bucket chown --uid=user --bucket=bucket
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket chown --uid=user2 --bucket=data
    Copy to Clipboard Toggle word wrap

  4. 通过检查以下命令输出中的 owner 行来验证 data 存储桶的所有权是否已成功更改:

    示例

    [ceph: root@host01 /]# radosgw-admin bucket list --bucket=data
    Copy to Clipboard Toggle word wrap

7.9.2.3. 在租户用户之间移动存储桶

您可以在一个租户用户和另一个租户之间移动存储桶。

流程

  1. 将存储桶链接到一个新用户:

    语法

    radosgw-admin bucket link --bucket=CURRENT_TENANT/BUCKET --uid=NEW_TENANT$USER
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/data --uid=test2$user2
    Copy to Clipboard Toggle word wrap

  2. 验证存储桶已成功链接到 user2

    [ceph: root@host01 /]# radosgw-admin bucket list --uid=test$user2
    [
        "data"
    ]
    Copy to Clipboard Toggle word wrap
  3. 将存储桶的所有权更改为新用户:

    语法

    radosgw-admin bucket chown --bucket=NEW_TENANT/BUCKET --uid=NEW_TENANT$USER
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'
    Copy to Clipboard Toggle word wrap

  4. 通过检查以下命令输出中的 owner 行来验证 data 存储桶的所有权是否已成功更改:

    [ceph: root@host01 /]# radosgw-admin bucket list --bucket=test2/data
    Copy to Clipboard Toggle word wrap

您可以将存储桶从非租户用户移到租户用户。

流程

  1. 可选:如果您还没有多个租户,您可以通过启用 rgw_keystone_implicit_tenants 并从外部租户访问 Ceph 对象网关来创建它们:

    启用 rgw_keystone_implicit_tenants 选项:

    示例

    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_implicit_tenants true
    Copy to Clipboard Toggle word wrap

    使用 s3cmdswift 命令从外部租户访问 Ceph 对象网关:

    示例

    [ceph: root@host01 /]# swift list
    Copy to Clipboard Toggle word wrap

    或使用 s3cmd:

    示例

    [ceph: root@host01 /]# s3cmd ls
    Copy to Clipboard Toggle word wrap

    从外部租户进行第一次访问可创建等效的 Ceph 对象网关用户。

  2. 将存储桶移到租户的用户:

    语法

    radosgw-admin bucket link --bucket=/BUCKET --uid='TENANT$USER'
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'
    Copy to Clipboard Toggle word wrap

  3. 验证 data 存储桶是否已成功链接到 tenanted-user

    示例

    [ceph: root@host01 /]# radosgw-admin bucket list --uid='test$tenanted-user'
    [
        "data"
    ]
    Copy to Clipboard Toggle word wrap

  4. 将存储桶的所有权更改为新用户:

    语法

    radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'
    Copy to Clipboard Toggle word wrap

  5. 通过检查以下命令输出中的 owner 行来验证 data 存储桶的所有权是否已成功更改:

    示例

    [ceph: root@host01 /]# radosgw-admin bucket list --bucket=test/data
    Copy to Clipboard Toggle word wrap

7.9.3. 查找孤立和泄漏对象

健康的存储集群没有任何孤立或泄漏的对象,但在某些情况下可能会发生孤立或泄漏的对象。

存储集群中存在孤立对象,并且具有与 RADOS 对象关联的对象 ID。但是,在 bucket 索引引用中,没有通过 S3 对象引用 RADOS 对象。例如,如果 Ceph 对象网关在操作的中间发生,这可能会导致一些对象变得孤立。另外,未发现的错误可能导致孤立对象发生。

您可以看到 Ceph 对象网关对象如何映射到 RADOS 对象。radosgw-admin 命令提供了一个用于搜索和生成这些潜在孤立或泄漏对象的列表的工具。使用 radoslist 子命令可显示 bucket 中存储的对象,或者存储集群中的所有 bucket。rgw-orphan-list 脚本显示池中的孤立对象。

注意

radoslist 子命令将替代已弃用的 orphans findorphans finish 子命令。

重要

不要使用无索引存储桶 因为所有对象都显示为 孤立

身份孤立对象的另一种方法是运行 rados -p <pool> ls | grep BUCKET_ID 命令

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 正在运行的 Ceph 对象网关.

流程

  1. 生成存储桶中保存数据的对象列表。

    语法

    radosgw-admin bucket radoslist --bucket BUCKET_NAME
    Copy to Clipboard Toggle word wrap

    示例

    [root@host01 ~]# radosgw-admin bucket radoslist --bucket mybucket
    Copy to Clipboard Toggle word wrap

    注意

    如果省略 BUCKET_NAME,则会显示所有存储桶中的所有对象。

  2. 检查 rgw-orphan-list 的版本。

    示例

    [root@host01 ~]# head /usr/bin/rgw-orphan-list
    Copy to Clipboard Toggle word wrap

    版本应该是 2023-01-11 或更新版本。

  3. 创建一个需要生成孤立项列表的目录。

    示例

    [root@host01 ~]# mkdir orphans
    Copy to Clipboard Toggle word wrap

  4. 导航到之前创建的目录。

    示例

    [root@host01 ~]# cd orphans
    Copy to Clipboard Toggle word wrap

  5. 从池列表中,选择要在其中查找孤立的池。根据集群中的对象,此脚本可能会长时间运行。

    示例

    [root@host01 orphans]# rgw-orphan-list
    Copy to Clipboard Toggle word wrap

    示例

    Available pools:
        .rgw.root
        default.rgw.control
        default.rgw.meta
        default.rgw.log
        default.rgw.buckets.index
        default.rgw.buckets.data
        rbd
        default.rgw.buckets.non-ec
        ma.rgw.control
        ma.rgw.meta
        ma.rgw.log
        ma.rgw.buckets.index
        ma.rgw.buckets.data
        ma.rgw.buckets.non-ec
    Which pool do you want to search for orphans?
    Copy to Clipboard Toggle word wrap

    输入池名称以搜索孤立项。

    重要

    在使用 rgw-orphan-list 命令而非元数据池时,必须指定数据池。

  6. 查看 rgw-orphan-list 工具用法的详细信息。'

    Synatx

    rgw-orphan-list -h
    rgw-orphan-list POOL_NAME /DIRECTORY
    Copy to Clipboard Toggle word wrap

    示例

    [root@host01 orphans]# rgw-orphan-list default.rgw.buckets.data /orphans
    
    2023-09-12 08:41:14 ceph-host01 Computing delta...
    2023-09-12 08:41:14 ceph-host01 Computing results...
    10 potential orphans found out of a possible 2412 (0%).         <<<<<<< orphans detected
    The results can be found in './orphan-list-20230912124113.out'.
        Intermediate files are './rados-20230912124113.intermediate' and './radosgw-admin-20230912124113.intermediate'.
    ***
    *** WARNING: This is EXPERIMENTAL code and the results should be used
    ***          only with CAUTION!
    ***
    Done at 2023-09-12 08:41:14.
    Copy to Clipboard Toggle word wrap

  7. 运行 ls -l 命令,以验证以 error 结尾的文件应该为零长度,表示脚本运行没有任何问题。

    示例

    [root@host01 orphans]# ls -l
    
    -rw-r--r--. 1 root root    770 Sep 12 03:59 orphan-list-20230912075939.out
    -rw-r--r--. 1 root root      0 Sep 12 03:59 rados-20230912075939.error
    -rw-r--r--. 1 root root 248508 Sep 12 03:59 rados-20230912075939.intermediate
    -rw-r--r--. 1 root root      0 Sep 12 03:59 rados-20230912075939.issues
    -rw-r--r--. 1 root root      0 Sep 12 03:59 radosgw-admin-20230912075939.error
    -rw-r--r--. 1 root root 247738 Sep 12 03:59 radosgw-admin-20230912075939.intermediate
    Copy to Clipboard Toggle word wrap

  8. 检查列出的孤立对象。

    示例

    [root@host01 orphans]# cat ./orphan-list-20230912124113.out
    
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.0
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.1
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.2
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.3
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.4
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.5
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.6
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.7
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.8
    a9c042bc-be24-412c-9052-dda6b2f01f55.16749.1_key1.cherylf.433-bucky-4865-0.9
    Copy to Clipboard Toggle word wrap

  9. 删除孤立对象:

    语法

    rados -p POOL_NAME rm OBJECT_NAME
    Copy to Clipboard Toggle word wrap

    示例

    [root@host01 orphans]# rados -p default.rgw.buckets.data rm myobject
    Copy to Clipboard Toggle word wrap

    警告

    验证您是否删除了正确的对象。运行 rados rm 命令从存储集群中移除数据。

7.9.4. 管理存储桶索引条目

您可以使用 radosgw-admin bucket check 子命令,在 Red Hat Ceph Storage 集群中管理 Ceph 对象网关的存储桶索引条目。

与多部分上传对象关联的每个 bucket 索引条目都与其对应的 .meta 索引条目匹配。对于给定的多部分上传的所有部分,应该有一个 .meta 条目。如果无法找到对应的 .meta 条目,它会在输出中的一个部分列出"孤立"条目。

bucket 的统计信息存储在存储桶索引标头中。此阶段会加载这些标头,并迭代存储桶索引中的所有普通对象条目并重新计算统计信息。然后,它分别显示在标有 "existing_header" 和 "calculated_header" 的部分实际和计算统计部分,以便可以比较它们。

如果您将 --fix 选项与 存储桶检查 子命令搭配使用,它会从存储桶索引中删除 "orphaned" 条目,并使用它计算的标头中的现有统计信息覆盖。它会导致所有条目(包括版本中使用的多个条目)在输出中列出。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 正在运行的 Ceph 对象网关.
  • 新创建的存储桶。

流程

  1. 检查特定存储桶的存储桶索引:

    语法

    radosgw-admin bucket check --bucket=BUCKET_NAME
    Copy to Clipboard Toggle word wrap

    示例

    [root@rgw ~]# radosgw-admin bucket check --bucket=mybucket
    Copy to Clipboard Toggle word wrap

  2. 修复存储桶索引中的不一致,包括删除孤立对象:

    语法

    radosgw-admin bucket check --fix --bucket=BUCKET_NAME
    Copy to Clipboard Toggle word wrap

    示例

    [root@rgw ~]# radosgw-admin bucket check --fix --bucket=mybucket
    Copy to Clipboard Toggle word wrap

7.9.5. bucket 通知

bucket 通知提供了一种方式,可以在 bucket 中发生特定事件时从 Ceph 对象网关发送信息。bucket 通知可以发送到 HTTP、AMQP0.9.1 和 Kafka 端点。必须创建一个通知条目,以便为特定存储桶上的事件和特定主题发送存储桶通知。可以在事件类型的子集上创建 bucket 通知,也可以默认为所有事件类型创建 bucket 通知。bucket 通知可以根据密钥前缀或后缀、匹配键的正则表达式、附加到对象或对象标签的元数据属性过滤出事件。bucket 通知具有 REST API,用于为 bucket 通知机制提供配置和控制接口。

注意

bucket 通知 API 会被默认启用。如果明确设置了 rgw_enable_apis 配置参数,请确保包含 s3notifications。要验证这一点,请运行 ceph --admin-daemon /var/run/ceph/ceph-client.rgw.NAME.asok 配置 get rgw_enable_apis 命令。将 NAME 替换为 Ceph 对象网关实例名称。

使用 CLI 的主题管理

您可以管理 Ceph 对象网关存储桶的列表、获取和删除主题:

  • 列出主题 : 运行以下命令列出所有主题的配置:

    示例

    [ceph: host01 /]# radosgw-admin topic list
    Copy to Clipboard Toggle word wrap

  • 获取主题 : 运行以下命令以获取特定主题的配置:

    示例

    [ceph: host01 /]# radosgw-admin topic get --topic=topic1
    Copy to Clipboard Toggle word wrap

  • 删除主题 : 运行以下命令以删除特定主题的配置:

    示例

    [ceph: host01 /]# radosgw-admin topic rm --topic=topic1
    Copy to Clipboard Toggle word wrap

    注意

    即使 Ceph 对象网关存储桶已配置至该主题,该主题也会被删除。

7.9.6. 创建存储桶通知

在 bucket 级别上创建 bucket 通知。通知配置具有 Red Hat Ceph Storage 对象网关 S3 事件,即 ObjectCreatedObjectRemoved。它们需要与目的地发布,以发送存储桶通知。bucket 通知是 S3 操作。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 正在运行的 HTTP 服务器、RabbitMQ 服务器或 Kafka 服务器。
  • 根级别访问权限.
  • 安装 Red Hat Ceph Storage 存储对象网关.
  • 用户 access key 和 secret key。
  • 端点参数.
重要

红帽支持 ObjectCreate 事件,如 放置postmultipartUploadcopy。红帽还支持 对象删除 事件,如 object_deletes3_multi_object_delete

下面是创建存储桶通知的两种方式:

  • 使用 boto 脚本
  • 使用 AWS CLI

使用 boto 脚本

  1. 安装 python3-boto3 软件包:

    示例

    [user@client ~]$  dnf install python3-boto3
    Copy to Clipboard Toggle word wrap

  2. 创建 S3 存储桶。
  3. 创建 python 脚本 topic.py,为 httpamqpkafka 协议创建 SNS 主题:

    示例

    import boto3
    from botocore.client import Config
    import sys
    
    # endpoint and keys from vstart
    endpoint = 'http://127.0.0.1:8000'
    access_key='0555b35654ad1656d804'
    secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=='
    
    client = boto3.client('sns',
        	endpoint_url=endpoint,
        	aws_access_key_id=access_key,
        	aws_secret_access_key=secret_key,
        	config=Config(signature_version='s3'))
    
    attributes = {"push-endpoint": "amqp://localhost:5672", "amqp-exchange": "ex1", "amqp-ack-level": "broker"}
    
    client.create_topic(topic_name="mytopic", Attributes=attributes)
    Copy to Clipboard Toggle word wrap

  4. 运行 python 脚本以创建主题:

    示例

    python3 topic.py
    Copy to Clipboard Toggle word wrap

  5. 创建 python 脚本 notification.py,为 s3:objectCreates3:objectRemove 事件创建 S3 存储桶通知:

    示例

    import boto3
    import sys
    
    # bucket name as first argument
    bucketname = sys.argv[1]
    # topic ARN as second argument
    topic_arn = sys.argv[2]
    # notification id as third argument
    notification_id = sys.argv[3]
    
    # endpoint and keys from vstart
    endpoint = 'http://127.0.0.1:8000'
    access_key='0555b35654ad1656d804'
    secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=='
    
    client = boto3.client('s3',
            endpoint_url=endpoint,
            aws_access_key_id=access_key,
            aws_secret_access_key=secret_key)
    
    # regex filter on the object name and metadata based filtering are extension to AWS S3 API
    # bucket and topic should be created beforehand
    
    topic_conf_list = [{'Id': notification_id,
                        'TopicArn': topic_arn,
                        'Events': ['s3:ObjectCreated:*', 's3:ObjectRemoved:*'],
                        }]
    
    client.put_bucket_notification_configuration(
       Bucket=bucketname,
       NotificationConfiguration={
           'TopicConfigurations': [
               {
                   'Id': notification_name,
                   'TopicArn': topic_arn,
                   'Events': ['s3:ObjectCreated:*', 's3:ObjectRemoved:*']
               }]})
    Copy to Clipboard Toggle word wrap

  6. 运行 python 脚本以创建存储桶通知:

    示例

    python3 notification.py
    Copy to Clipboard Toggle word wrap

  7. 在存储桶中创建 S3 对象。
  8. 获取通知配置:

    示例

    endpoint = 'http://127.0.0.1:8000'
    access_key='0555b35654ad1656d804'
    secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=='
    
    client = boto3.client('s3',
            endpoint_url=endpoint,
            aws_access_key_id=access_key,
            aws_secret_access_key=secret_key)
    
    # getting a specific notification configuration is an extension to AWS S3 API
    
    print(client.get_bucket_notification_configuration(Bucket=bucketname))
    Copy to Clipboard Toggle word wrap

  9. 可选:删除对象。

    1. httprabbitmqkafka 接收器中验证对象删除事件。

使用 thr AWS CLI

  1. 创建主题:

    语法

    aws --endpoint=AWS_END_POINT sns create-topic --name NAME --attributes=ATTRIBUTES_FILE
    Copy to Clipboard Toggle word wrap

    示例

    [user@client ~]$ aws --endpoint=http://localhost sns create-topic --name test-kafka --attributes=file://topic.json
    
    sample topic.json:
    {"push-endpoint": "kafka://localhost","verify-ssl": "False", "kafka-ack-level": "broker", "persistent":"true"}
    ref: https://docs.aws.amazon.com/cli/latest/reference/sns/create-topic.html
    Copy to Clipboard Toggle word wrap

  2. 创建存储桶通知:

    语法

    aws s3api put-bucket-notification-configuration --bucket BUCKET_NAME --notification-configuration NOTIFICATION_FILE
    Copy to Clipboard Toggle word wrap

    示例

    [user@client ~]$ aws s3api put-bucket-notification-configuration --bucket my-bucket --notification-configuration file://notification.json
    
    sample notification.json
    {
        "TopicConfigurations": [
            {
                "Id": "test_notification",
                "TopicArn": "arn:aws:sns:us-west-2:123456789012:test-kafka",
                "Events": [
                    "s3:ObjectCreated:*"
                ]
            }
        ]
    }
    Copy to Clipboard Toggle word wrap

  3. 获取通知配置:

    语法

    aws s3api --endpoint=AWS_ENDPOINT get-bucket-notification-configuration --bucket BUCKET_NAME
    Copy to Clipboard Toggle word wrap

    示例

    [user@client ~]$ aws s3api --endpoint=http://localhost get-bucket-notification-configuration --bucket my-bucket
    {
        "TopicConfigurations": [
            {
                "Id": "test_notification",
                "TopicArn": "arn:aws:sns:default::test-kafka",
                "Events": [
                    "s3:ObjectCreated:*"
                ]
            }
        ]
    }
    Copy to Clipboard Toggle word wrap

7.9.7. 其它资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat