如何通过lambda函数将弗吉尼亚州的存储桶中的内容复制到爱尔兰的存储桶中?
我正在尝试在弗吉尼亚州创建lambda函数:
const aws = require('aws-sdk');
const s3 = new aws.S3();
s3.copyObject({
Bucket: 'my-bucket-in-ireland',
CopySource: 'my-bucket-in-virginia' + '/' + 'myKey.zip',
Key: 'myKey.zip'
}, function (err, data) {
// further handling logic goes here
});
但是我得到一个错误:
"The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'eu-west-1'"
答案 0 :(得分:2)
该问题似乎与AWS签名计算有关。我认为s3客户端正在使用lambda函数的区域(us-east-1)。但是我认为,出于签名计算的目的,它期望该区域是目标存储桶(eu-west-1)的区域。您可以尝试将区域传递给s3客户端并查看签名是否被接受吗?
const aws = require('aws-sdk');
const s3 = new aws.S3({region: 'eu-west-1'});