gpt4 book ai didi

django - 带有元数据的 AWS S3 预签名 URL

转载 作者:行者123 更新时间:2023-12-03 22:12:04 25 4
gpt4 key购买 nike

我正在尝试使用下面的 boto3 创建 presigned-url

s3 = boto3.client(
's3',
aws_access_key_id=settings.AWS_ACCESS_KEY,
aws_secret_access_key=settings.AWS_ACCESS_SECRET,
region_name=settings.AWS_SES_REGION_NAME,
config=Config(signature_version='s3v4')
)
metadata = {
'test':'testing'
}
presigned_url = s3.generate_presigned_url(
ClientMethod='put_object',
Params={
'Bucket': settings.AWS_S3_BUCKET_NAME,
'Key': str(new_file.uuid),
'ContentDisposition': 'inline',
'Metadata': metadata
})

因此,在生成 URL 后,我尝试使用 Ajax 将其上传到 S3,它给出了 403 forbidden。如果我在创建 URL 时删除 Metadata 和 ContentDisposition,它将成功上传。

Boto3 版本:1.9.33

以下是我所指的文档:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.generate_presigned_url

最佳答案

是的,我让它工作了,
基本上在生成签名 URL 之后,我需要将所有元数据和 Content-Dispostion 与签名 URL 一起发送到 header 中。
例如:我的元数据字典是 {'test':'test'} 然后我需要在 header 中发送这个元数据,即 x-amz-meta-test 连同它的值和 content-dispostion 到 AWS

关于django - 带有元数据的 AWS S3 预签名 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53649888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com