in util/common/agent_util_unix.go [245:270]
func DownloadFromS3(bucket string, key string, destPath string) error {
sess := session.Must(session.NewSession())
s3Client := s3.New(sess)
result, err := s3Client.GetObject(&s3.GetObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(key),
})
if err != nil {
return fmt.Errorf("failed to download from S3 bucket %s, key %s: %v", bucket, key, err)
}
defer result.Body.Close()
outFile, err := os.Create(destPath)
if err != nil {
return fmt.Errorf("failed to create file at %s: %v", destPath, err)
}
defer outFile.Close()
_, err = io.Copy(outFile, result.Body)
if err != nil {
return fmt.Errorf("failed to copy content to %s: %v", destPath, err)
}
return nil
}