AWS CLI“cp”失败并显示“指定的存储桶不存在”

时间:2016-07-16 23:20:27

标签: amazon-web-services aws-cli

我正在使用AWS执行我的第一步,并尝试使用AWS CLI将文件从EC2服务器复制到S3服务器。

我收到错误:

  

调用PutObject操作时发生客户端错误(NoSuchBucket):指定的存储桶不存在

我的命令如下:
  - 我去了我的S3仪表板,选择了桶 - >属性和处理'端点'值

  

[桶名] .s3-website-us-west-2.amazonaws.com

  • 然后执行
  

aws s3 cp ./file.ext   s3:// [桶名] .s3-website-us-west-2.amazonaws.com / file.ext

但它因前面描述的错误而失败 - 存在桶。

P.S。正在运行

  

aws s3api list-buckets --query'Buckets []。Name'

显示存储桶确实存在,因此这不是我理解的问题。

修改 如果我不使用端点但仅使用存储桶名称,则错误消息鼓励使用全名,在所有在线示例中看起来与端点完全相同

  

上传失败:./ file.ext到s3:// [存储桶名称] /file.ext调用PutObject操作时发生客户端错误(PermanentRedirect):您尝试访问的存储桶必须使用指定的地址进行寻址端点。请将以后的所有请求发送到此端点:[存储桶名称] .s3.amazonaws.com   您可以通过使用--region参数,AWS_DEFAULT_REGION环境变量或AWS CLI配置文件中的region变量显式提供正确的区域位置来解决此问题。您可以通过运行“aws s3api get-bucket-location --bucket BUCKET”来获取存储桶的位置。

3 个答案:

答案 0 :(得分:5)

您正在使用存储桶的端点不使用它。使用存储桶的实际名称。检查此语法bucket name应该只是存储桶的名称,而不是存储桶的端点或URL。

aws s3 cp --recursive ./file.txt s3://bucketname/

上述错误是由于您没有该操作的正确权限的策略问题。请查看本指南,将策略添加到AWS S3存储桶。

http://blogs.aws.amazon.com/security/post/Tx3VRSWZ6B3SHAV/Writing-IAM-Policies-How-to-grant-access-to-an-Amazon-S3-bucket

答案 1 :(得分:0)

请在您的外壳中运行aws configure命令以设置默认区域。

系统将提示您输入4个键值。其中两个是默认区域和输出格式。另外两个是与访问相关的键。

由于用户error2007s建议使用:

aws s3 cp file_path s3://bucket-name/path-of-object

答案 2 :(得分:-1)

不确定为什么我尝试使用的表单没有工作 - 请参阅我的编辑 - 我尝试按照建议操作但失败了。

我解决它的方式正在按照建议运行

  

aws s3api get-bucket-location --bucket BUCKET

然后使用

的形式
  

s3:// [存储桶名称] - region = [return_val_of_get_bucet_location]

如果有人可以建议没有旗帜的话,我会很感激。

相关问题