【问题标题】:Go - Download S3 file under a prefixGo - 在前缀下下载 S3 文件
【发布时间】:2016-12-12 19:48:50
【问题描述】:

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

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),
    })

存储桶名称 - “myBucket” 文件夹名称 - “myFolder” 文件名 - “我的文件”

GetObjectInput 不接受 Prefix 作为参数。 仅指定不带前缀的存储桶名称会导致找不到密钥错误。 尝试如下设置“bucket”但出错

  1. myBucket/myFolder
  2. myBucket/myFolder/
  3. myBucket&prefix=myFolder

错误:无法下载文件 SignatureDoesNotMatch:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。 状态码:403,请求ID:647D920C72888888

注意:直接在存储桶下下载文件是有效的。

【问题讨论】:

    标签: go amazon-s3


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2020-05-29
      相关资源
      最近更新 更多