【问题标题】:generate_presigned_post url failing due to "No AWSAcesskey was presented"generate_presigned_post url 由于“没有提供 AWSAcesskey”而失败
【发布时间】:2023-01-13 01:51:24
【问题描述】:

我正在使用以下代码生成预签名帖子

def generate_pre_signed_upload_url(content_type: str, expiration: int, fields, bucket_name: str, object_name: str):
    try:
        config = Config(signature_version='s3v4')
        s3 = boto3.client("s3", region_name='us-west-2', config=config)
        return s3.generate_presigned_post(
            Bucket=bucket_name,
            Key=object_name,
            Fields=fields,
            ExpiresIn=expiration,
            Conditions=[{"Content-Type": content_type}],
        )
    except Exception as e:
        raise e

对此的响应是:

{
    "url": "https://sandbox-taxservice-s3bucket-s3bucket6575f0a6-19dl1xpyc3fzo.s3.amazonaws.com/",
    "fields": {
        "key": "xxxxxxxxxxxxx",
        "x-amz-algorithm": "AWS4-HMAC-SHA256",
        "x-amz-credential": "xxxxxxxxx",
        "x-amz-date": "xxxxxx",
        "x-amz-security-token": "xxxxxx",
        "policy": "xxxxxxxx",
        "x-amz-signature": "xxxxxxx"
    }
}

当我尝试在发布请求中使用 url/字段时,出现 AWSAcessKey 错误(见下文)

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>AccessDenied</Code>
    <Message>No AWSAccessKey was presented.</Message>
    <RequestId>354BCDQHZ4NB8Y4D</RequestId>
    <HostId>aBM0WkvvrVg9H+Q2H826rHA/bPhxvSGGEg5HKbkxEHwbzybN0p0dhbR4F8np/ovKHJlx9Cwgrgc=</HostId>
</Error>

有谁知道如何解决这一问题?我更改的所有参数都没有在返回字段中放置 AWSAcessKey。

【问题讨论】:

  • 当我尝试在发布请求中使用 url/字段时向我们展示这段代码。

标签: python amazon-web-services amazon-s3 pre-signed-url


【解决方案1】:

该代码现在可以正常工作,是另一端的错误请求。不得不提出要求

r = requests.post(response['url'], data=response['fields'], files=files)

【讨论】:

    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2021-02-20
    • 1970-01-01
    相关资源
    最近更新 更多