当前位置: 首页 > 知识库问答 >
问题:

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

仉磊
2023-03-14

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

我收到一个错误:

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

我的命令如下:
-我去了S3仪表板,选择了bucket-

[桶名称]。s3-website-us-west-2。amazonaws。com公司

  • 然后被处决

aws s3 cp/文件分机s3://[存储桶名称]。s3-website-us-west-2。amazonaws。com/文件。外景

但它失败了,出现了前面描述的错误-bucket不存在。

PS跑步

AWS s3api列表-桶-查询'桶[]。名称'

表明桶确实存在,所以这不是我理解的问题。

如果我不使用endpoint而只使用bucket名称,请编辑错误消息鼓励使用全名,在所有在线示例中,全名与endpoint完全相同

上载失败:/文件扩展到s3:///[存储桶名称]/文件。ext调用PutObject操作时发生客户端错误(PermanentRedirect):必须使用指定的endpoint寻址您尝试访问的bucket。请将所有未来的请求发送到此终结点:[bucket name]。s3。amazonaws。com您可以通过使用--region参数、AWS\u DEFAULT\u region环境变量或AWS CLI配置文件中的region变量显式提供正确的区域位置来修复此问题。您可以通过运行“aws s3api get bucket location--bucket bucket”来获取bucket的位置。

共有3个答案

辛渝
2023-03-14

请在您的shell中运行aws配置命令来设置默认区域。

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

用户错误2007建议使用:

aws s3 cp file_path s3://bucket-name/path-of-object
国俊艾
2023-03-14

我不知道为什么我尝试使用的表单无效-请参阅我的编辑-我尝试按照建议操作,但失败了。

与此同时,我解决问题的方法是按建议运行

aws s3api获取铲斗位置--铲斗铲斗

然后使用

s3://[存储桶名称]--区域=[返回\u val\u of\u get\u bucet\u位置]

如果有人能建议不要挂国旗,我会很感激的。

毛弘博
2023-03-14

您正在使用存储桶的endpoint。不要使用它。使用存储桶的实际名称。

如果检查语法,bucket name应该只是bucket的名称,而不是bucket的endpoint或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

 类似资料:
  • 但是得到一个错误: Py4JJavaError:调用o41时出错。显示字符串:组织。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段1.0中的任务0失败1次,最近一次失败:阶段1.0中的任务0.0丢失(TID 1)(10.75.81.111执行器驱动程序):org。阿帕奇。火花SparkException:Python worker无法连接回。

  • 问题内容: 我在使用Python 2.7(Anaconda)的OSX El Capitan。启动命令将产生: 这些都不起作用(退出时出现相同的错误)。 已是最新。我基本上尝试遵循相关问题中的所有建议,但没有成功。任何帮助表示赞赏,谢谢! 问题答案: 从此博客复制。 通过查找可能得出结论的信息,即brew安装的配置可能不正确,请打开脚本以修改其中的某些内容: 变成: 保存 然后重新安装mysql-p

  • 问题内容: 我想不断详细说明数据集流的行(最初由Kafka发起):基于条件,我想更新Radis哈希。这是我的代码段(是上一个命令的结果,该命令是这种类型的流:。扩展为): 我收到一个巨大的堆栈跟踪,相关部分(我认为)是这样的: 谁能解释为什么发生此异常以及如何避免?谢谢! 问题答案: Spark上下文不可序列化。 ForeachWriter的任何实现都必须可序列化,因为每个任务都将获得所提供对象的

  • 问题内容: 这是我得到的错误 我该怎么解决? 问题答案: 看来你的系统上缺少或安装程序找不到它。确保确实安装了。 例如,在上,你必须安装软件包: 也许不在你的路径中,当你自己编译mysql套件时就是这种情况。 更新:对于最新版本的(截至2018年),它是

  • 我有一个多项目gradle构建,Spring Boot按照默认gradle约定进行结构化。 我目前的项目是(A)将gradle从5. x升级到7.3. x,(B)使用带有Spring Boot的嵌入式Tomcat。 这是一个已经存在很多年的项目,是Spring Boot,但是传统上一直作为一个战争文件部署在Tomcat中。 我已经按照gradle迁移指南将gradle升级到7.3.3,并正确构建了

  • 我无法通过Mercurial提交一个文件。以下是该命令的不同变体: 带有--traceback的变体 带有--debug的变体 我的同事和我已经清理了提交的项目,重新克隆了它,是否删除了更改,检查了所有python脚本和ssh密钥的可访问性……应该可以,但不能。 我有一个怀疑,虽然“--debug”变体中的错误在提交更改日志后出现,但它可能是它的东西?我在项目中没有看到任何名为“changelog