From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- examples/rgw/boto3/notification_filters.py | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 examples/rgw/boto3/notification_filters.py (limited to 'examples/rgw/boto3/notification_filters.py') diff --git a/examples/rgw/boto3/notification_filters.py b/examples/rgw/boto3/notification_filters.py new file mode 100755 index 000000000..2687c8b3a --- /dev/null +++ b/examples/rgw/boto3/notification_filters.py @@ -0,0 +1,48 @@ +#!/usr/bin/python + +import boto3 +import sys + +if len(sys.argv) != 4: + print('Usage: ' + sys.argv[0] + ' ') + sys.exit(1) + +# 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:*'], + 'Filter': { + 'Metadata': { + 'FilterRules': [{'Name': 'x-amz-meta-foo', 'Value': 'bar'}, + {'Name': 'x-amz-meta-hello', 'Value': 'world'}] + }, + 'Tags': { + 'FilterRules': [{'Name': 'foo', 'Value': 'bar'}, + {'Name': 'hello', 'Value': 'world'}] + }, + 'Key': { + 'FilterRules': [{'Name': 'regex', 'Value': '([a-z]+)'}] + } + }}] + +print(client.put_bucket_notification_configuration(Bucket=bucketname, + NotificationConfiguration={'TopicConfigurations': topic_conf_list})) -- cgit v1.2.3