无法从S3复制到Ec2实例

时间:2016-05-11 09:01:03

标签: amazon-web-services amazon-s3 amazon-ec2 aws-cli

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

$ aws s3 ls s3://my-folder
2016-05-07 16:44:50       6007 myfile.txt

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

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

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

x
  

必须指定区域 - 区域或指定区域   配置文件或作为环境变量。或者,一个   可以使用--endpoint-url

指定端点

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

  

“S3不需要区域选择”

地球上发生了什么?

3 个答案:

答案 0 :(得分: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,则说

     

&#34; S3不需要区域选择&#34;

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

  

您可以选择一个区域来优化延迟,最大限度地降低成本或   解决监管要求。永远存储在区域中的对象   离开该区域,除非您明确将它们转移到另一个区域   区域。有关区域的更多信息,请参阅Accessing a Bucket:in   Amazon Simple Storage Service开发人员指南。

答案 1 :(得分:1)

怎么样

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

我怀疑问题与本地路径解析器有关。 aws cli s3 fileformat parser

有点奇怪,因为aws cli读取了凭证和区域配置。

答案 2 :(得分:0)

此修复程序指定了区域,以下说明了如果您无法从cli获取桶区域的方法。

enter image description here

aws s3 cp s3://xxxxyyyyy/2008-Nissan-Sentra.pdf myfile.pdf --region us-west-2