Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services aws cli签名版本4_Amazon Web Services_Amazon S3_Aws Cli - Fatal编程技术网

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实例上使用最新的CLI
    aws CLI/1.11.63 Python/2.7.9 Windows/2008ServerR2 botocore/1.5.26
    ,并通过分配给该实例的角色使用凭据。所以,我无法重现你的错误。