我試圖獲取一些客戶端信息並將每個下載文件請求存儲在數據庫中。存儲所需的所有信息後,下載請求正在處理:在數據庫中存儲唯一的下載請求
return response()->download($file_path);
的問題是,對每個請求,主要是通過下載管理器,多連接到相同的URL做出這樣的應用程序商店上的同一請求多行用戶。
我想限制每個唯一客戶端請求的存儲不是每個連接。我想防止多重連接會爲我做的,所以我加了Accept-Ranges
頭:
return response()->download($file_path, null, ["Accept-Ranges" => "None"]);
雖然下載沒有恢復,能了,多行存儲在數據庫中。 (但它比以前少得多)
避免在用戶下載請求中插入多個數據庫的最佳做法是什麼?
*請不要接聽或沒有考慮到多個重複和同時請求從多個獨特的和同時請求不同意見。否則,那裏有很多解決方案。
P.S.我不想用Laravel來標記我的問題。請不要添加它。
開始可以給每個下載一個唯一的ID,這將是在URL中可見,並且這將在一定時間到期。所以只要下載恢復使用該ID,你可以認爲它是相同的下載。雖然在發送文件的最後一個範圍時,您必須注意是否過期鏈接。這只是一個意見。 – frz3993
我認爲這不是一個好的做法。您可能會錯過唯一的下載請求,因爲您不知道該密鑰的過期時間,也許有人會嘗試在該特定時間內多次下載文件。 @ frz3993 – revo
您是否在插入數據庫之前嘗試過檢查'Range'頭值?對於新的/唯一的下載請求,它不應該出現或從0開始。 – max