(Python)获取aws的s3的上传文件签名

2020-07-24  本文已影响0人  西厌西厌
a. 获取accesskey

进入IAM - 选择用户 - 选择安全证书-创建访问密钥

b. 服务端创建获取签名接口
# key格式:img/test.png ,其中img为文件夹
key = request.GET.get('key',None)
bucket_name = 你的bucket名称
generated_signed_url = create_presigned_url(bucket_name ,key) 

def create_presigned_url(bucket_name,bucket_key,expiration=3600):
    s3_client = boto3.client('s3',
                             aws_access_key_id='xxx',
                             aws_secret_access_key='xxx',
                             config=Config(signature_version='s3v4'),
                             region_name='us-east-1')
    url = s3_client.generate_presigned_url(
       ClientMethod = 'put_object',
       Params = {
           'Bucket':bucket_name,
           'Key':bucket_key,
           'ACL':'public-read'
       }
    )
    return url
c. 用put直接请求b返回的url,带上以下header
x-amz-acl: public-read

以binary方式上传文件,注意文件名要与bucket_key同名(不算文件夹)

上一篇下一篇

猜你喜欢

热点阅读