使用 boto3 授予对 S3 对象上的 Elasticache 的读取权限
Grant read to Elasticache on S3 object with boto3
我有一个脚本可以将文件上传到 S3,然后启动一个带有该文件的 Elasticache 服务器。 Elasticache documentation 表示向 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
提供读取和读取许可权限,它代表除 GovCloud 或中国以外的任何区域的规范 ID。
这是我的代码:
import boto3
s3_cl = boto3.client('s3')
s3_cl.put_object_acl(Bucket='bucket-name', Key='file.rdb', GrantRead='540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353')
这是我得到的错误:
ClientError: An error occurred (InvalidArgument) when calling the PutObjectAcl operation: Argument format not recognized
我应该向 GrantRead
提供什么参数?我的理解是它是一个受让人,可以是一个规范的 ID,所以我做错了什么?
我认为您应该以下列格式之一提供受助人:
- id=<被授权者的规范用户 ID>
- email=<受助人的电子邮件地址>
- uri=<被授权者组的 URI>
- displayname=<受助人的屏幕名称>
- type=<受让人类型>
我从 awscli put-object-acl 文档中推断出此信息。
我有一个脚本可以将文件上传到 S3,然后启动一个带有该文件的 Elasticache 服务器。 Elasticache documentation 表示向 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
提供读取和读取许可权限,它代表除 GovCloud 或中国以外的任何区域的规范 ID。
这是我的代码:
import boto3
s3_cl = boto3.client('s3')
s3_cl.put_object_acl(Bucket='bucket-name', Key='file.rdb', GrantRead='540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353')
这是我得到的错误:
ClientError: An error occurred (InvalidArgument) when calling the PutObjectAcl operation: Argument format not recognized
我应该向 GrantRead
提供什么参数?我的理解是它是一个受让人,可以是一个规范的 ID,所以我做错了什么?
我认为您应该以下列格式之一提供受助人:
- id=<被授权者的规范用户 ID>
- email=<受助人的电子邮件地址>
- uri=<被授权者组的 URI>
- displayname=<受助人的屏幕名称>
- type=<受让人类型>
我从 awscli put-object-acl 文档中推断出此信息。