2016-07-29 94 views
0

我正在尋找一種方法來在每個上傳到S3存儲桶的文件中添加一個時間戳。當然,在上傳之前可以選擇在客戶端執行此操作,但我認爲這不是一件好事和乾淨的事情,因爲每次上傳新文件時都需要在存儲區中運行一些腳本。雖然我沒有在文檔中找到任何內容。S3桶腳本在上傳文件時添加時間戳

+0

您要添加時間戳的文件名複製到桶乙或者你想添加一個時間戳到文件的元數據? – error2007s

+0

這個想法是添加一個時間戳作爲文件名的前綴,從而使每個文件都是唯一的以避免文件覆蓋。 – lucasnadalutti

+0

S3已經有一個避免覆蓋的機制 - [對象版本控制](http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html) - 它會在每次上傳時返回一個唯一的版本ID。你提出的是遠距離的鬼怪行爲 - 一旦你上傳了一個文件,你完全不知道它的對象關鍵是什麼,因爲它不再是你用來上傳它的東西。 –

回答

2

存在沒有能力在Amazon S3內根據上傳時間更改文件的密鑰(文件名)。

鑑於你的願望是避免名稱衝突,有些選擇:

  • 使用唯一的GUID或時間戳上傳時命名文件。這將避免命名衝突。
  • 文件上傳到桶中,然後用lambda函數上ObjectCreation觸發對象一個獨特的名字基於時間戳
0

您可以嘗試使用處理ObjectCreated事件的lambda函數。請參閱this tutorial

雖然不能確定。

+0

我曾考慮過這個問題,但問題是已經有一個lambda監聽這個桶,意味着運行一個完全與重命名文件無關的函數。當然,我可以創建一個單獨的存儲桶,並讓一個lambda只聽它來重命名文件並將重命名的文件發送到現有的存儲桶,但這似乎結束了... – lucasnadalutti