【问题标题】:How to fix data import to Windows EC2 from S3 bucket如何修复从 S3 存储桶导入 Windows EC2 的数据
【发布时间】: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/ .

这是我的问题:

  1. 为什么导入文件时递归选项出错?
  2. 我可以在 EC2 实例的配置中检查哪些内容,以验证它是否为数据导入正确设置?

【问题讨论】:

  • 该错误消息很奇怪,但我会检查您正在使用的 IAM 角色(可能分配给 EC2 服务器)是否具有对 S3 对象的实际读取访问权限。鉴于这种行为,它听起来可能只有列表对象访问权限。
  • "aws s3 cp s3://mybuckt/ 。"不会复制任何内容,因为您需要指定对象名称或使用 --recursive。您是否尝试过复制单个对象并检查它是否引发相同的错误?我尝试重新生成各种场景,例如通过授予 List 对象访问权限来更改存储桶策略,但未能重新生成错误,因为 GetObject 策略授予 List 和下载访问权限。如果这是访问问题,它会将错误显示为“拒绝访问”。如果其他 CLI 命令运行正常,您能否也检查一下它们?

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


【解决方案1】:

您没有指定任何要复制的文件。你应该使用:

aws s3 cp s3://mybuckt/* . --recursive

或者,您可以使用:

aws s3 sync s3://mybuckt/ . --recursive

【讨论】:

    【解决方案2】:

    我的具体问题的解决方案是我必须在存储桶以及我的 EC2 实例上指定文件名。

    aws s3 cp s3://mybuckt/file.txt nameOnMyEC2.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-29
      • 2016-03-07
      • 2012-05-14
      • 1970-01-01
      • 2016-05-18
      • 2021-02-10
      • 1970-01-01
      • 2021-11-09
      相关资源
      最近更新 更多