常使用AWS S3的開發者來說,這複製資訊到另一個bucket 應該算是一個蠻常見的需求,而目前看到AWS Go SDK有支援對應的APICopyObject
;
在試著使用了以後,發現Go SDK的程式碼中 CopySource
欄位的描述不是很清楚,所以不知道要怎麼把值代入這個欄位,直到後來發現AWS 有份文件中有寫到相關的範例:
原來一個正確的CopyObjectInput
會是如下所示:
source := bucket + "/" + item
input := &s3.CopyObjectInput{
CopySource: aws.String(url.PathEscape(source)),
Bucket: aws.String(other),
Key: aws.String(item)
}
跟我原本預期的有些差距,原本以為合法的CopySource
應該會是如像:s3://bucket/item
.XD