无法从S3复制到Ec2实例

PHP*_*ger 1 amazon-s3 amazon-ec2 amazon-web-services aws-cli

我试图将文件从S3复制到Ec2实例,这是奇怪的行为以下命令运行完全正常并向我显示s3的内容,我想访问

$aws s3 ls
2016-05-05 07:40:57 folder1
2016-05-07 15:04:42 my-folder
Run Code Online (Sandbox Code Playgroud)

然后我发出以下命令(也成功)

$ aws s3 ls s3://my-folder
2016-05-07 16:44:50       6007 myfile.txt
Run Code Online (Sandbox Code Playgroud)

但是当我尝试复制此文件时,我会发现如下错误

$aws s3 cp s3://my-folder/myfile.txt ./
Run Code Online (Sandbox Code Playgroud)

必须指定区域 - 区域或在配置文件中指定区域或指定环境变量.或者,可以使用--endpoint-url指定端点

我只想将txt文件从s3复制到ec2实例.至少修改上面的命令来复制内容.我不确定区域,如果我从网上访问S3它说

"S3不需要区域选择"

地球上发生了什么?

MMT*_*MMT 6

如果您的区域未在aws configure中设置为默认区域,则您很可能无法正常工作.

因此,根据我对S3的经验,如果这样做:

aws s3 ls s3://my-folder

那么这也应该有效:

aws s3 cp s3://my-folder/myfile.txt ./

但是,如果它要求您提供区域,那么您需要提供它.

试试这个来获取存储区域:

aws s3api get-bucket-location --bucket BUCKET

然后这个来复制文件:

aws s3 cp --region <your_buckets_region> s3://my-folder/myfile.txt ./

如果我从网上访问S3,它说

"S3不需要区域选择"

特别是对于该消息,S3和桶区域可能非常混乱.因为对于s3地区而言,它是IMO中最具误导性的信息.除非您启用了跨区域复制,否则每个存储桶都有特定区域(默认为us-east-1).

您可以选择一个区域来优化延迟,最小化成本或满足法规要求.存储在区域中的对象永远不会离开该区域,除非您明确地将它们传输到另一个区域 有关区域的更多信息,请参阅Amazon Simple Storage Service开发人员指南中的访问存储:.