41 条回复  ·  1112 次点击
rekulas 小成 2024-8-22 22:21:03
移动文件应该很快,耗时应该是在合并上,增加了额外的 io 时间

所以最佳方案应该就是预申请空间,然后不同的线程可以在不同的段进行 io 写入不会冲突(如果是单线程写入那就更不会了), 只需要验证分块 hash 正确最后的文件应该就没啥问题了
renmu 该用户已被删除 2024-8-22 23:10:20
提示: 作者被禁止或删除 内容自动屏蔽
jiangzm 小成 2024-8-22 23:31:32
为啥一定要按分片存储呢, 直接将缓冲不断写入单文件不好吗? 还是说用缓存文件替代缓冲,不管是处理缓冲区(Buffer)还是缓存文件,其实都需要每收到一次请求及时做写入目标文件处理啊。
Suaxi 小成 2024-8-22 23:36:40
领导允许用开源对象存储的话,可以参考一下 minio 的分片上传
salparadise 小成 2024-8-23 00:04:24
做过类似断点续传,用的 Oss 分片+合并
01802 小成 2024-8-23 01:39:13
用 syncthing 去传也行,可以自建
guanzhangzhang 初学 2024-8-23 08:33:56
创建大小文件,http range 和你 serfer 进程 seek 写就行
linhua 小成 2024-8-23 08:48:35
@humbass #15  断点续传 和 断点下载是差不多的。一般的做法是 先建立一个 实际文件大小的 占位文件,还有一个 存储当前进度信息的 文本文件
expy 小成 2024-8-23 08:51:53

关于断点续传

预分配一个完整文件,用分块序号和分块大小计算要写入的偏移量,前端上传前先查询,后端返回未上传的分块序号。
listen2wind 初学 2024-8-23 09:02:04

关于断点续传

@humbass #3  minio 是可以的,我们使用过,部署在内网的。
返回顶部