2
我也跟着在AWS網站gzip壓縮文件並將它們分流到S3的例子,這裏找到:http://docs.aws.amazon.com/sdk-for-go/latest/v1/developerguide/common-examples.title.html流通過AWS SDK GO gzip壓縮文件,以S3
我有一個問題,唯一的事情降落在我的S3的bucket基本上只有GZIP頭文件。每個文件的大小爲23b。
任何想法會導致這種情況?
我的代碼:
func (t *Table) Upload() {
year := time.Now().Format("2006")
month := time.Now().Format("01")
day := time.Now().Format("02")
reader, writer := io.Pipe()
go func() {
gw := gzip.NewWriter(writer)
io.Copy(gw, t.File)
t.File.Close()
gw.Close()
writer.Close()
}()
uploader := s3manager.NewUploader(session.New(&aws.Config{Region: aws.String(os.Getenv("AWS_REGION"))}))
result, err := uploader.Upload(&s3manager.UploadInput{
Body: reader,
Bucket: aws.String(os.Getenv("S3_BUCKET")),
Key: aws.String(fmt.Sprintf("%s/%s/%s/%s/%s", os.Getenv("S3_KEY"), year, month, day, t.Name+".csv.gz")),
})
if err != nil {
log.WithField("error", err).Fatal("Failed to upload file.")
}
log.WithField("location", result.Location).Info("Successfully uploaded to")
}
什麼是t.File,是否打開? io.Copy複製直到EOF或錯誤。您應該檢查io.Copy的寫入字節和錯誤的返回值。 – jrwren
t(或表)是一個結構,有一個開放的指針文件 –
我沒有更新io.Copy爲: _,錯誤:= io.Copy(gw,t.File) 只是爲了檢查錯誤,沒有。 –