AWS/S3/boto3:无法使用 presigned_url 将文件上传到存储桶

问题描述 投票:0回答:1

我有以下代码来获取 presigned_url:

s3_client = boto3.client('s3', endpoint_url=AWS_ENDPOINT)
presigned_url = s3_client.generate_presigned_url('get_object',
                                                 Params={'Bucket': "my-bucket",
                                                         'Key':"my-key"},
                                                 ExpiresIn=expiration)

然后我使用以下命令上传文件

curl -v --upload-file my-key {presigned_url}

但我收到

AccessDenied
错误。我需要在 S3 存储桶上设置一些权限吗?在boto3下生成presigned_url时需要分配特殊权限吗?

python amazon-web-services amazon-s3 boto3
1个回答
0
投票

您应该使用

generate_presigned_post
而不是
generate_presigned_url

在这里您可以看到一个工作示例:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html#generate-a-presigned-url-to-upload- a 文件

© www.soinside.com 2019 - 2024. All rights reserved.