目前為止,以下代碼滿足了我的需要,但我覺得有更好的“批處理”方法可以實現。serv := s3.New(session.New(s3h.Config))for _, i1 := range []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f"} {? ? for _, i2 := range []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f"} {? ? ? ? req := &s3.PutObjectInput{? ? ? ? ? ? Bucket: aws.String(S3_BUCKET),? ? ? ? ? ? Key:? ? aws.String(i1 + i2 + "/"),? ? ? ? }? ? ? ? serv.PutObject(req)? ? }}有什么指點嗎?
1 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
S3 中沒有“文件夾”這樣的東西。從簡單的高層來看,S3 是一個大型鍵/值存儲。列表操作支持查找以某個前綴開頭并且可以在已知分隔符(例如/
)處停止的鍵子集,使其看起來像具有類似文件系統的語義。
只需將一個對象放入/a/b/c/d
看起來像是創建了文件夾的對象a
,b
但c
它只是用該鍵創建了一個對象??刂婆_中使用的列表操作以 at/
作為分隔符,因此它提供了類似文件夾的視圖。
您無法將多個 S3 對象放入單個操作中。每一項都必須作為單獨的操作上傳。使用 Go,我建議您可以有一個通道,放置所需的所有上傳內容,并讓多個并發工作人員處理這些內容以提高性能。您需要進行一些調整才能找到最佳數量。如果還沒有一個用于此目的的庫,我不會感到驚訝,因為這將是一個非常常見的 S3 用例。
- 1 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消