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

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同名(不算文件夹)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容