一尘不染

转到-在前缀下下载S3文件

go

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

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”文件名-“ myFile”

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

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

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

注意:可以直接在存储桶下下载文件。


阅读 251

收藏
2020-07-02

共1个答案

一尘不染

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

2020-07-02