簡體   English   中英

從S3下載所有文件並將它們上傳到同一文件夾中

[英]download all files from S3 and upload them in same folder

每當創建新存儲桶時,我都會在存儲桶上啟用版本控制。 但是為了向后兼容(已創建的存儲桶),我正在下載所有文件/密鑰並再次上傳。 我正在這樣做:

fullObject = s3Client.getObject(new GetObjectRequest(bucketName, key));

但是我無法在上傳時弄清楚如何在其特定文件夾中上傳文件。 還是有另一種解決向后兼容性的解決方案。

S3確實沒有文件夾,它使用邏輯來“偽造”它,以尋找以“ /”分隔的通用前綴。 “密鑰”是存儲桶中文件的完整路徑名。

聽起來您正在執行獲取操作,然后想要將相同的字節放入存儲桶中的相同密鑰。 如果這是您要執行的操作,則只需使用與獲取對象相同的鍵即可。

在啟用了版本控制的存儲桶中,這將導致文件的兩個副本。 目前尚不清楚您為什么要這么做(假設您正寫回所讀內容)。 您會不會最終要為同一文件的兩個副本付費?

我的理解是,如果您為其中已經有文件的存儲桶打開版本控制,那么一切都會以您期望的方式運行。 如果先前存在的文件被刪除,它只會添加一個刪除標記。 如果先前存在的文件被覆蓋,它將保留先前版本(作為新文件的先前版本)。 啟用版本控制時,無需主動重寫現有文件。 如果您有興趣,可以通過S3控制台,命令行界面或特定於語言的API之一輕松進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM