S3から特定のデータチャンクをダウンロードしようとしています。以下はコードスニペットです。AWS Go SDKを使用してS3オブジェクトからバイト範囲をダウンロードできません
func DownloadFromS3() ([]byte, error) {
retries := 5
awsSession = session.Must(session.NewSessionWithOptions(session.Options{
SharedConfigState: session.SharedConfigEnable,
Config: aws.Config{
MaxRetries: &retries,
LogLevel: aws.LogLevel(aws.LogDebugWithHTTPBody),
},
}))
// Create S3 service client
serviceS3 = s3.New(awsSession)
d := s3manager.NewDownloaderWithClient(serviceS3,func(d *s3manager.Downloader) {
d.Concurrency = 10 // should be ignored
d.PartSize = 1 // should be ignored
})
w := &aws.WriteAtBuffer{}
n, err := d.Download(w, &s3.GetObjectInput{
Bucket: aws.String("mybucket"),
Key: aws.String("key1"),
Range: aws.String("bytes=0-9"),
})
if err != nil {
return nil, err
}
return w.Bytes(), err
}
しかし、これは、オブジェクト全体が取得されるまで、部分的にダウンロードを続けます。指定された部分だけをダウンロードすることはありません。私はここで設定が欠けていますか?
ありがとうございます。はい、それはv1.8.33で修正されたSDKの問題でした – Anuruddha