Go - 在前缀下下载S3文件

时间:2016-12-12 19:48:51

标签: go amazon-s3

我正在尝试下载目录下的文件而不是直接在存储桶中。

file, err := os.Create("s3file.csv")
downloader := s3manager.NewDownloader(session.New(&aws.Config{Region: aws.String("us-east-1")}))
numBytes, err := downloader.Download(file,
    &s3.GetObjectInput{
        Bucket: aws.String(bucket),
        Key:    aws.String(key),
    })

Bucket name - " myBucket" 文件夹名称 - " myFolder" 文件名 - " myFile"

GetObjectInput不接受Prefix作为参数。 仅指定不带前缀的存储桶名称会导致Key not found错误。 试过设置"桶"如下,但有错误

  1. myBucket / myFolder
  2. myBucket / myFolder /
  3. myBucket&安培;前缀= MyFolder文件
  4. 错误:无法下载文件SignatureDoesNotMatch:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。     状态代码:403,请求ID:647D920C72888888

    注意:直接在存储桶下载文件正在运行。

1 个答案:

答案 0 :(得分:0)

Bucket应该始终是您的存储桶的名称。 Key是对象的全名(路径),因此在您的情况下,该值应为myFolder/myFile