我決定使用Amazon S3作爲我創建的應用程序的文檔存儲。我遇到的一個問題是,當我需要將文件上傳到S3時,我需要在我的應用程序中創建一個文檔對象,以便我的用戶可以執行CRUD操作。如何防止使用Amazon S3進行雙重文件上傳?
一個解決方案是允許雙重上傳。用戶將文檔上載到我的Rails應用程序所在的服務器上。我驗證並創建該對象,然後將其傳遞給S3。與此有關的一個問題是進度指標變得更加複雜。使用大多數開箱即用的插件會向客戶端顯示文件已完成上傳,因爲它位於我的服務器上,但是當文件從服務器上傳到S3時會有相當大的延遲。這也引入了不必要的帶寬(至少似乎沒有必要)
我想到的另一個解決方案是用一個AJAX請求直接將文件上傳到S3,並且當成功時,再發出一個AJAX請求到將對象存儲在我的數據庫中。這裏的一個問題是,我必須在文件上傳後驗證文件,這意味着如果驗證失敗,我必須在S3中運行一些清理代碼。
兩者似乎同樣凌亂。
有沒有人有更優雅的工作,他們不介意分享?我想這是「雲存儲」今天非常流行的常見情況。也許我看着這個錯誤。
我已經問了一個類似的問題:http://stackoverflow.com/questions/5796468/amazon-s3-multipart-upload-with-plupload-and-rails-3問題是類似的,因爲我試圖解決同樣的問題問題,但我想到了一種使用組塊來消除雙倍時間的方法。您的EC2應用程序是?我的是,但重新保存大文件仍然很慢。 – Amala 2011-04-29 13:52:39