首页 > 解决方案 > 如何绕过 botocore 3 中的以下错误:缺少此请求所需的标头:x-amz-content-sha256?

问题描述

我有以下脚本将文件上传到 s3 存储桶:

import boto3
from botocore.config import Config

s3_conf = {
  'bucket': 'the_bucketr',
  'folder': 'cohort',
  'config': Config(
    region_name = 'eu-central-1',
    signature_version = 'v4',
    retries = {
      'max_attempts': 10,
      'mode': 'standard'
  }),
  'aws_access_key_id':'^SOKE_KEY^',
  'aws_secret_access_key':'^NOT_TELLING_U^'
}

 s3_client = boto3.client('s3',
          config=s3_conf['config'],  
          aws_access_key_id=s3_conf['aws_access_key_id'],
          aws_secret_access_key=s3_conf['aws_secret_access_key']
      )

  s3_client.upload_file('loremIpsum.txt',s3_conf['bucket'],'loremUpsum.txt')

但我得到了错误:

Failed to upload loremIpsum.txt to the_bucketr/loremIpsum.txt: An error occurred (InvalidRequest) when calling the CreateMultipartUpload operation: Missing required header for this request: x-amz-content-sha256

你知道我该如何解决这个问题吗?

标签: pythonamazon-s3boto3

解决方案


为了绕过问题,您应该更改线路

    signature_version = 'v4',

进入:

    signature_version = 's3v4',

它会像一台运转良好的战争机器一样工作。


推荐阅读