首页 > 解决方案 > Swisscom S3 动态存储 - 带有 boto3 的签名版?

问题描述

像这样创建 S3 客户端时:

s3 = boto3.client(
    's3',
    endpoint_url=app.config['S3_HOST'],
    aws_access_key_id=app.config['S3_SETTINGS']['accessKey'],
    aws_secret_access_key=app.config['S3_SETTINGS']['sharedSecret'],
    config=Config(signature_version='s3')
)

然后尝试像这样上传文件:

s3.upload_fileobj(Fileobj=_file,
    Bucket=app.config['S3_BUCKET'],
    Key=file_hash,
    ExtraArgs={
        "Metadata": {
            "file_name": file_name
        }
    })

它抛出"Error: The request signature we calculated does not match the signature you provided. Check your key and signing method."

s3v4 似乎也不起作用。我应该使用什么签名版本?

标签: swisscomdev

解决方案


推荐阅读