2016-12-12 7 views
0

バケツに直接ではなくディレクトリの下にあるファイルをダウンロードしようとしています。Go - プレフィックスの下にS3ファイルをダウンロードします。

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がパラメータとしてプレフィックスを受け付けません。 接頭辞なしのバケット名のみを指定すると、Key not foundエラーが発生します。 次のように "バケット" を設定しようとしましたが、エラー

  1. myBucket/MYFOLDER
  2. myBucket/MYFOLDER/
  3. myBucket &接頭辞= MYFOLDER

エラーました:ファイルSignatureDoesNotMatchのダウンロードに失敗しました:私たちが計算した要求署名はあなたが提供した署名と一致しません。あなたのキーと署名方法を確認してください。 ステータスコード:403、リクエストID:647D920C72888888

注:ファイルをバケットの下に直接ダウンロードしています。

答えて

0

Bucketは常にバケットの名前にする必要があります。 Keyはオブジェクトのフルネーム(パス)なので、あなたの場合はmyFolder/myFileでなければなりません。

+0

ありがとうAndy。出来た。 – Gurucharan

関連する問題