happyfish100 / fastdfs

FastDFS is an open source high performance distributed file system (DFS). It's major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance. Wechat/Weixin public account (Chinese Language): fastdfs
GNU General Public License v3.0
8.99k stars 1.98k forks source link

关于断点上传咨询几个问题 #554

Closed qifengzhang007 closed 1 year ago

qifengzhang007 commented 2 years ago

1.概述

本人正在开发 fastdfs golang 客户端,v1.0.00 版本开发完成,核心功能已经全部实现: https://github.com/qifengzhang007/fastdfs_client_go

2.目前遇到的问题

请求body:

@store_path_index , byte 1字节 ,存储目录序号 @fileSize int64,8字节, 传输的二进制数据的字节数目 @file_ext_name 文件扩展名6个字节 @file_content:file_size 字节二进制内容,文件内容


这里我个人比较疑惑的是,在文件上传的过程中,我故意把网线拔掉,假设文件传输了50%,这个时候我没有办法获取到该文件在服务器存储信息-fileId,
当我再次插入网线以后,网络恢复,我客户端重连到服务器以后,我也不知道给哪个文件继续追加、写入内容,因为我没有在前一步获取到 fileId 。

我的理解是,断点续传应该是在知道某个上传的文件信息(fileId)后,继续给该文件追加内容吧?

还是说我在断点上传这块的理解哪里不正确,求各位指教一下这块的核心原理,不胜感激。
happyfish100 commented 2 years ago

需要先上传 appender类型的文件。第一次上传,可以上传内容为空,即创建一个空文件。

qifengzhang007 commented 2 years ago

需要先上传 appender类型的文件。第一次上传,可以上传内容为空,即创建一个空文件。

好的,明白了。 非常感谢,原来是首先上传一个空文件,获取文件id信息,然后追加写入内容。