2016-12-12 122 views
0
的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不接受前缀作为参数。 仅指定没有前缀的存储桶名称会导致找不到密钥错误。 尝试设置 “桶” 如下却得到了错误

  1. myBucket/MyFolder中
  2. myBucket/MyFolder中/
  3. myBucket & PREFIX = MyFolder文件

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

注意:直接下载存储桶下的文件正在工作。

回答

0

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

+0

谢谢安迪。有效。 – Gurucharan