社区
非技术区
帖子详情
如何实现上传的断电续传??
thales
2002-03-16 03:09:56
如题
...全文
74
3
打赏
收藏
如何实现上传的断电续传??
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
thales
2002-03-16
打赏
举报
回复
不行啊,那篇是讲下载的,以前看过了,不同啊。不是ftp服务器,用servlet实现不行吗?
bread213
2002-03-16
打赏
举报
回复
http://www-900.ibm.com/developerWorks/java/joy-down/index.shtml
lbluekey
2002-03-16
打赏
举报
回复
是FTP吗?FTP服务器支持才行呀!
php+html+js+css
实现
文件断点
续传
纯js
实现
多文件断点
续传
功能,便于开发者前端更换自己喜欢的UI设计。
基于go的大文件切片
上传
、断点
续传
、秒传.zip
基于go的大文件切片
上传
、断点
续传
、秒传.zip 1、如何唯一标示一个文件? 文件的信息后端会存储在mysql数据库表中。 在
上传
之前,前端通过 spark-md5.js 计算文件的md5值以此去唯一的标示一个文件。 spark-md5.js 地址:satazor/js-spark-md5 README.md中有spark-md5.js的使用demo,可以去看看。 2、断点
续传
是如何
实现
的? 断点
续传
可以
实现
这样的功能,比如RD
上传
200M的文件,当用户
上传
完199M时,断网了,有了断点
续传
的功能,我们允许RD再次
上传
时,能从第199M的位置重新
上传
。
实现
原理:
实现
断点
续传
的前提是,大文件切片
上传
。然后前端得问后端哪些chunk曾经
上传
过,让前端跳过这些
上传
过的chunk就好了。 前端的
上传
器(uploader.js)在
上传
时会先发送一个GET请求,这个请求不会携带任何chunk数据,作用就是向后端询问哪些chunk曾经
上传
过。 后端会将这些数据保存在mysql数据库表中。比如按这种格式:1:2:3:5表示,曾经
上传
过的分片有1,2,3,5。第四片没有被
上传
,前端会跳过1,2,3,5。 仅仅会将第四个chunk发送给后端。 3、秒传是如何
实现
的? 秒传
实现
的功能是:当RD重复
上传
一份相同的文件时,除了第一次
上传
会正常发送
上传
请求后,其他的
上传
都会跳过真正的
上传
,直接显示秒成功。
实现
方式: 后端存储着当前文件的相关信息。为了
实现
秒传,我们需要搞一个字段(isUploaded)表示当前md5对应的文件是否曾经
上传
过。 后端在处理 前端的
上传
器(uploader.js)发送的第一个GET请求时,会将这个字段发送给前端,比如 isUploaded = true。前端看到这个信息后,直接跳过
上传
,显示
上传
成功。 4、
上传
暂停是如何
实现
的?
上传
的暂停:并不是去暂停一个已经发送出去的正在进行数据传输的http请求~ 而是暂停发送起发送下一个http请求。 就我们的项目而言,因为我们的文件本来就是先切片,对于我们来说,暂停文件的
上传
,本质上就是暂停发送下一个chunk。 5、前端
上传
并发数是多少? 前端的uploader.js中默认会三条线程启动并发
上传
,前端会在同一时刻并发 发送3个chunk,后端就会相应的为每个请求开启三个协程处理
上传
的过来的chunk。 在我们的项目中,会将前端并发数调整成了1。原因如下: 因为考虑到了断点
续传
的
实现
,后端需要记录下曾经
上传
过哪些切片。(这个记录在mysql的数据库表中,以 ”1:2:3:4:5“ )这种格式记录。 Mysql5.7默认的存储引擎是innoDB,默认的隔离级别是RR。如果我们将前端的并发数调大,就会出现下面的异常情况: 1. goroutine1 获取开启事物,读取当前
上传
到记录是 1:2 (未提交事物) 2. goroutine1 在现有的记录上加上自己处理的分片3,并和现有的1:2拼接在一起成1:2:3 (未提交事物) 3. goroutine2 获取开启事物,(因为RR,所以它读不到1:2:3)读取当前
上传
到记录是 1:2 (未提交事物) 4. goroutine1 提交事物,将1:2:3写回到mysql 5. goroutine2 在现有的记录上加上自己处理的分片4,并和现有的1:2拼接在一起成1:2:4 (提交事物) 可以看到,如果前端并发
上传
,后端就会出现分片丢失的问题。 故前端将并发数置为1。
前端使用 node fs模块
实现
文件断点
续传
(下载
续传
)
前端直接引用nodejs fs 模块
实现
文件下载
续传
、并没有想象中的那么难...
【分布式存储系统】基于MinIO和boto3的Python断点
续传
实现
:大文件分段
上传
与错误处理机制设计
内容概要:本文详细介绍了如何使用 MinIO 和 Python 的 boto3 库
实现
文件的断点
续传
功能。首先,文章阐述了环境准备步骤,包括确保 MinIO 服务器运行并安装 boto3 库。接着,通过一个具体的 Python 示例代码,展示了分段
上传
的
实现
过程。代码中,首先初始化 S3 客户端,然后通过 create_multipart_upload 方法启动分段
上传
任务,并在每次
上传
前通过 list_parts 检查已
上传
的分段以支持断点
续传
。
上传
过程中,每个分段通过 upload_part 方法进行
上传
,最后调用 complete_multipart_upload 完成整个
上传
流程。此外,代码还包含了基本的错误处理机制,如遇到异常时调用 abort_multipart_upload 中止
上传
任务。; 适合人群:具有一定的 Python 编程基础和云存储服务使用经验的技术人员,特别是对 MinIO 或 AWS S3 API 感兴趣的开发者。; 使用场景及目标:①
实现
大文件的高效、可靠的
上传
;② 掌握使用 MinIO
QT学习之文件传输和断点
续传
在QT上开发的文件传输工具,利用TCP
实现
文件传输,支持断点
续传
操作。
非技术区
23,407
社区成员
70,513
社区内容
发帖
与我相关
我的任务
非技术区
Java 非技术区
复制链接
扫一扫
分享
社区描述
Java 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章