我试图获取一些客户端信息并将每个下载文件请求存储在数据库中。存储所需的所有信息后,下载请求正在处理:在数据库中存储唯一的下载请求
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