簡體   English   中英

將對象從一個 s3 文件夾移動到同一存儲桶中的另一個文件夾的最快且最具成本效益的方法是什么

[英]what is the fastest and cost efficient way of moving objects from one s3 folder to another folder in same bucket

我有一個示例存儲桶,其中包含子文件夾和文件的演示文件夾。 桶結構:

example/demo/*.jpeg #.jpeg files 
example/demo/sub-folder1
example/demo/sub-folder2

我的目標是將demo/文件夾中的所有.jpeg文件(不包括sub-folder1文件夾 1 和sub-folder2文件夾 2 中的.jpeg文件)移動到新文件夾/example/archive-jpeg/

尋求幫助以使用 aws-cli 獲得最快且具有成本效益的方式:使用 awscli v2

  1. 列出立即/demo文件夾中的所有.jpeg對象和
  2. 將它們移動到/archive-jpeg文件夾
  3. 存檔后從/demo文件夾中刪除.jpeg

謝謝你!

這應該這樣做:

aws s3 mv s3://bucket/demo/  s3://bucket/target-folder/ --recursive --exclude "*" --include "*.jpeg" --exclude "*/*"

邏輯是:

  • aws s3 mv --recursive告訴它移動所有對象
  • --exclude "*"告訴它排除所有對象被移動
  • --include "*.jpeg"告訴它包含以.jpeg結尾的對象
  • --exclude "*/*"告訴它排除子目錄中的任何內容(例如sub-folder1/sub-folder2/

請參閱: AWS CLI:使用排除和包含過濾器

至於最快成本效益,由於您已指定要通過 AWS CLI 執行此操作,因此沒有其他選擇。

如果您願意在沒有AWS CLI 的情況下執行此操作,那么移動對象的更快方法是編寫一些並行運行的代碼,以將單獨的 Copy 和 Delete API 調用發送到 Amazon S3。 (S3 中沒有“移動”命令——AWS CLI 實際上是在復制對象,然后刪除原始對象。)

或者,您可以配置 Amazon S3 事件以觸發 AWS Lambda function,而不是作為批量移動對象,從而在文件創建后立即移動文件,這將導致它們比作為批量運行“更快”移動。

至於成本效益,需要復制和刪除對象,這將導致 API 以$0.005 per 1000 requests的成本調用 Amazon S3。 我認為您無法避免這些 API 調用,因此無法降低成本。

暫無
暫無

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

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