【发布时间】:2019-08-22 13:41:52
【问题描述】:
我有一个 Windows Server 2012 R2 EC2 实例,但无法从 S3 存储桶导入 txt 文件。
我想使用 aws-cli 设置从 S3 存储桶到 EC2 实例的常规数据导入。为了测试该命令,我使用管理权限打开了命令提示符,导航到要导入文件的目录并运行以下命令。
aws s3 cp s3://mybuckt/ . --recursive
然后,对于存储桶中的每个文件,我都会收到如下错误:
download failed: s3://mybuckt/filename.txt to .\filename.txt [Error 87] The parameter is incorrect
我最终在我的目录中得到了一个空文件列表。该列表与存储桶上的列表相同,但文本文件是空的。
当我尝试不使用递归的命令时,什么也没有发生。没有错误消息,没有复制文件。
aws s3 cp s3://mybuckt/ .
这是我的问题:
- 为什么导入文件时递归选项出错?
- 我可以在 EC2 实例的配置中检查哪些内容,以验证它是否为数据导入正确设置?
【问题讨论】:
-
该错误消息很奇怪,但我会检查您正在使用的 IAM 角色(可能分配给 EC2 服务器)是否具有对 S3 对象的实际读取访问权限。鉴于这种行为,它听起来可能只有列表对象访问权限。
-
"aws s3 cp s3://mybuckt/ 。"不会复制任何内容,因为您需要指定对象名称或使用 --recursive。您是否尝试过复制单个对象并检查它是否引发相同的错误?我尝试重新生成各种场景,例如通过授予 List 对象访问权限来更改存储桶策略,但未能重新生成错误,因为 GetObject 策略授予 List 和下载访问权限。如果这是访问问题,它会将错误显示为“拒绝访问”。如果其他 CLI 命令运行正常,您能否也检查一下它们?
标签: windows amazon-web-services amazon-s3 amazon-ec2 aws-cli