2016-11-05 81 views
1

我期待在本教程由Heroku的建議(爲的NodeJS應用程序)用於通過服務器簽署S3文件,然後直接從客戶端處理上傳:直接到s3 /客戶端文件上傳。使用這種方法是否存在將未使用的文件存儲在s3存儲桶中的問題?

https://devcenter.heroku.com/articles/s3-upload-node

我想知道許多潛在未使用的文件存儲在s3存儲桶中。

在heroku教程中,它們貫穿用戶編輯場景。他們陳述:

  • 當用戶選擇的圖像被上傳,上載至S3是 與過程自動地和異步處理此文章中描述 早。一旦上傳完成併成功,圖像預覽將隨着所選圖像更新爲 。

  • 然後,用戶點擊「提交」按鈕,這訊息的用戶名, 名和上載的圖像到節點應用程序的URL是 檢查和/或存儲。如果之前沒有用戶上傳圖片 ,則會發布默認的頭像圖片網址。

那麼,如果用戶選擇圖像,然後點擊到另一個頁面沒有完成並提交用戶個人資料嗎?

這只是一個浪費的文件存儲在你的s3桶嗎?


我「在我MEAN應用程序,使用類似的方法m式上提出:

  • 我把文件上傳到S3

  • 然後,一個承諾,一旦。上傳完成後,我將用戶的 個人資料信息/張貼到服務器的s3 url。

我有一個類似的問題,如果用戶在承諾調用之前離開或存在連接問題會怎麼樣 - 是否存在存儲未使用文件的問題?

這是處理這種情況的典型方式,這只是風險的一部分?

+0

我們將上傳內容放在一個存儲區中,並使用七天的自動刪除保留策略。成功提交後,我們將其移至永久存儲桶。很好地工作。 – ceejayoz

回答

2

上傳發生在客戶端的事實並不會使這個問題或多或少比服務器端更糟糕。您仍然需要一種處理錯誤並使其與數據庫保持同步的機制。

你如何處理這取決於你的具體應用需求。 @ceejayoz提到了一種臨時存儲桶的方法。我更喜歡在完成之前不要擔心上傳,並使用Lambda作業處理數據更新。如果你真的想要,你也可以使用列表操作進行同步處理,但我認爲這通常是不必要的。

相關問題