fastdfs icon indicating copy to clipboard operation
fastdfs copied to clipboard

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

Open qifengzhang007 opened this issue 2 years ago • 2 comments

1.概述

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

2.目前遇到的问题

  • 2.1 关于文件断点上传问题 作者在微信公众号中公布的fastdfs协议对接详情:https://mp.weixin.qq.com/s/lpWEv3NCLkfKmtzKJ5lGzQ ,关于文件上传,给出的协议对接命令、参数如下:
# 请求命令
 * STORAGE_PROTO_CMD_UPLOAD_FILE:上传普通文件
 * STORAGE_PROTO_CMD_UPLOAD_APPENDER_FILE:上传appender类型文件
 
# 请求body:
   @store_path_index  , byte 1字节 ,存储目录序号
   @fileSize int64,8字节,     传输的二进制数据的字节数目
   @file_ext_name  文件扩展名6个字节
   @file_content:file_size 字节二进制内容,文件内容

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

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

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

qifengzhang007 avatar Mar 03 '22 08:03 qifengzhang007

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

happyfish100 avatar Mar 08 '22 01:03 happyfish100

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

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

qifengzhang007 avatar Mar 08 '22 13:03 qifengzhang007