尝试将文件上传到新法兰克福地区的S3存储桶时,出现AWS::S3::Errors::InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
错误。所有这些在US Standard
区域中都可以正常工作。
脚本:
backup_file = '/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz'
s3 = AWS::S3.new(
access_key_id: AMAZONS3['access_key_id'],
secret_access_key: AMAZONS3['secret_access_key']
)
s3_bucket = s3.buckets['test-frankfurt']
# Folder and file name
s3_name = "database-backups-last20days/#{File.basename(File.dirname(backup_file))}_#{File.basename(backup_file)}"
file_obj = s3_bucket.objects[s3_name]
file_obj.write(file: backup_file)
aws-sdk (1.56.0)
如何修复它?
谢谢。
发布于 2015-07-26 19:10:04
使用node,尝试
var s3 = new AWS.S3( {
endpoint: 's3-eu-central-1.amazonaws.com',
signatureVersion: 'v4',
region: 'eu-central-1'
} );
发布于 2015-03-24 21:28:41
您应该在config
中设置signatureVersion: 'v4'
以使用新的sign版本:
AWS.config.update({
signatureVersion: 'v4'
});
适用于JS
sdk。
发布于 2016-12-22 15:06:09
对于使用boto3
(Python SDK
)的用户,请使用以下代码
from botocore.client import Config
s3 = boto3.resource(
's3',
aws_access_key_id='xxxxxx',
aws_secret_access_key='xxxxxx',
config=Config(signature_version='s3v4')
)
https://stackoverflow.com/questions/26533245
复制相似问题