Amazon web services aws cli签名版本4
我想将我的所有数据从帐户Amazon web services aws cli签名版本4,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我想将我的所有数据从帐户A的Bucket1移动到帐户B的Bucket2 为此: 我下载了适用于Windows的AWS CLI 使用命令aws configure输入IAM凭据(这些凭据来自帐户B) 运行命令同步存储桶:aws s3同步s3://Bucket1 s3://Bucket2 我收到了以下错误: 致命错误:调用ListObject操作时发生错误(InvalidRequest):您正试图对需要签名版本4的区域中的存储桶进行操作。您可以通过使用--region参数、AWS_DEFAUL
A的Bucket1
移动到帐户B的Bucket2
为此:
我下载了适用于Windows的AWS CLI
使用命令aws configure
输入IAM
凭据(这些凭据来自帐户B
)
运行命令同步存储桶:aws s3同步s3://Bucket1 s3://Bucket2
我收到了以下错误:
致命错误:调用ListObject操作时发生错误(InvalidRequest):您正试图对需要签名版本4的区域中的存储桶进行操作。您可以通过使用--region参数、AWS_DEFAULT_region环境变量或AWS CLI配置文件中的region变量显式提供正确的区域位置来修复此问题。您可以通过运行“aws s3api get bucket location--bucket bucket”来获取bucket的位置
如何解决这个错误
aws --version
aws-cli/1.11.61 Python/2.7.9 windows/8 botocore/1.5.24
我的S3
url就像:https://console.aws.amazon.com/s3/home?region=us-east-1
所以我以为us-east-1
是我的地区,但实际上不是
我使用AWS命令查找Bucket2区域,它告诉我一个不同的区域
然后我使用了这个命令awss3sync s3://Bucket1 s3://Bucket2——亚太地区(孟买)
,一切正常 查找桶的正确区域(请参见附图)。
通过指定正确的区域,尝试以下命令:
aws s3 ls --region us-west-2
S3是全局的-不要让它误导您。正如错误所说,您应该在aws S3 sync
命令中添加--region
参数。我认为您需要引用目标区域,但如果这不起作用,请尝试源区域。它的格式将类似于us-east-1
或us-west-2
。您正在使用哪些区域?如何添加区域参数(语法)?我收到的参数太少
命令错误aws--美国西部地区-2
aws s3同步s3://Bucket1 s3://Bucket2--美国西部地区-2
Bucket1
在美国东部地区-1
中,而Bucket2
在美国西部地区-2
中。首先我尝试了命令:aws s3 sync s3://Bucket1 s3://Bucket2——美国西部地区-2
,然后我尝试了aws s3 sync s3://Bucket1 s3://Bucket2——美国东部地区-1
,但两次都出现了相同的错误(问题中提到了错误),我试图重现这个问题。我在us-east-1
和us-west-2
中创建了一个bucket。然后,我发出了awss3syncs3://bucket1s3://Bucket2
命令,它运行良好。我甚至试着用不同的值添加--region
,结果仍然很好。我正在Amazon EC2实例上使用最新的CLIaws CLI/1.11.63 Python/2.7.9 Windows/2008ServerR2 botocore/1.5.26
,并通过分配给该实例的角色使用凭据。所以,我无法重现你的错误。