2016-12-12 18 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