You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无登录单页视频合并WebApp多用户文件隔离与清理方案咨询

无登录多用户视频合并方案

1. 给每个用户分配临时唯一标识

  • 用户打开页面时,前端直接生成一个UUID(用浏览器自带的crypto.randomUUID()即可),存在localStorage里,后续所有请求都带上这个ID。若担心前端生成的安全性,也可以让后端在用户第一次发起请求时生成ID并返回给前端,存在前端存储中。

2. 基于临时ID创建专属文件夹

  • 用户上传视频时,后端根据这个ID创建独立的临时文件夹,比如temp_videos/xxxx-xxxx-xxxx/,该用户所有上传的文件都存入此文件夹。合并视频时直接读取该文件夹内的文件,完全避免与其他用户的文件混淆。

3. 自动清理过期文件

  • 给每个临时文件夹设置过期时间,比如用户完成合并后1小时,或24小时无操作就删除。可以用定时任务(比如Linux的cron、Node.js的node-schedule)定期扫描临时目录,删除超期的文件夹。也可以在用户下载完合并后的视频后,让前端发送请求通知后端直接删除该用户的临时文件夹。

4. 前端请求传递标识

  • 上传、合并、清理的所有API请求,要么把ID放在请求参数里,要么塞进请求头中,后端通过这个ID定位到对应的文件夹。举个前端上传的示例:
    const tempUserId = localStorage.getItem('tempUserId') || crypto.randomUUID();
    localStorage.setItem('tempUserId', tempUserId);
    const formData = new FormData();
    formData.append('video', file);
    formData.append('tempUserId', tempUserId);
    fetch('/upload', { method: 'POST', body: formData });
    

5. 额外防坑优化

  • 限制每个临时文件夹的文件数量和总大小,防止恶意用户上传大量文件占用服务器资源。
  • 如果用户清除了浏览器缓存,再次打开页面会生成新ID,之前的文件夹会被定时任务自动清理,不会影响其他用户的使用。

内容的提问来源于stack exchange,提问作者M Schm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:10:29