我正在尝试下载目录下的文件而不是直接在存储桶中 .
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作为参数 . 仅指定不带前缀的存储桶名称会导致Key not found错误 . 尝试设置“桶”如下,但得到错误
-
myBucket / myFolder
-
myBucket / myFolder /
-
myBucket&prefix = myFolder
错误:无法下载文件SignatureDoesNotMatch:我们计算的请求签名与您提供的签名不匹配 . 检查您的密钥和签名方法 . 状态码:403,请求ID:647D920C72888888
注意:直接在存储桶下载文件正在运行 .
1 回答
Bucket
应该始终是您的桶的名称 .Key
是对象的全名(路径),因此在您的情况下,应该是myFolder/myFile
.