我有一個Rails中的Web應用程序,作爲AJAX文件上傳功能。文件被上傳到遠程服務器(AWS S3)。我目前的策略是上傳temp/
目錄中的文件(使用原始名稱),直到用戶提交表單,然後將其重命名爲其確定名稱。避免文件上傳命名衝突的策略
但問題是,如果多個用戶試圖同時上傳兩個具有相同名稱的文件,那麼其中一個會覆蓋另一個。
我想要解決這個問題的策略是在加載上傳頁面時生成隨機SHA1,將它們存儲在本地表中以確保它們是唯一的,並在臨時文件重命名時將其刪除。
您是否看到這種方法存在問題?
解決此問題的最佳策略是什麼?
爲什麼SHA1不只是一個GUID或'mktempfile'生成器?對內容使用SHA1的原因是,如果預計重複資源被添加*並且*它被用作重複控制的方法*並且*資源在上載後被認爲是不可變的。但是,如果情況並非如此..(然後想象兩個人同時上傳兩個空文件的位置)。 – 2012-09-12 00:32:17