我正在使用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”来获取存储桶的位置。
答案 0 :(得分:5)
您正在使用存储桶的端点不使用它。使用存储桶的实际名称。检查此语法bucket name
应该只是存储桶的名称,而不是存储桶的端点或URL。
aws s3 cp --recursive ./file.txt s3://bucketname/
上述错误是由于您没有该操作的正确权限的策略问题。请查看本指南,将策略添加到AWS S3存储桶。
答案 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]
如果有人可以建议没有旗帜的话,我会很感激。