我有一个使用AWS CLI的命令
aws s3 cp y:/mydatafolder s3://<bucket>/folder/subfolder --recursive --grants read=uri=http://policyurl
第一部分在python中很容易,我可以使用os.walk
遍历文件夹并获取文件并使用boto3.s3client.upload_file
命令上传文件。我正在努力的第二部分是--grants read
部分。
我需要调用什么boto3函数才能执行此操作?
由于
答案 0 :(得分:0)
在upload_file
来电中,您需要在GrantRead
中传递ExtraArgs
。一般来说,您可以传递put_object
将采用这种方式的任何参数。例如:
import boto3
s3 = boto3.client('s3')
file_path = '/foo/bar/baz.txt'
s3.upload_file(
Filename=file_path,
Bucket='<bucket>',
Key='key',
ExtraArgs={
'GrantRead': 'uri="http://policyurl"'
}
)