Chinaunix

标题: 关于fastdfs上传后文件名改变的问题 [打印本页]

作者: 5d6d_andy    时间: 2009-11-23 13:16
标题: 关于fastdfs上传后文件名改变的问题
现在遇到一个问题,有时候会因为碰到这样形式的文件 file.a.b,如果上传后返回的文件名为 xxx.b,这样的话会出现文件不能使用的情况,比如说两个这样的文件 sample.part1.rar 和 sample.part2.rar 只有两个在一起时才能正常解压,如果用fastdfs上传后文件名都会改变。下载后不能正常解压。能不能不让文件名改变或者后缀名是否可以保存第一个点出现时以后的部分。
作者: happy_fish100    时间: 2009-11-23 16:07
标题: 回复 #1 5d6d_andy 的帖子
哈哈。最近刚好实现了主从文件。正在测试阶段。
slave文件的文件名根据master文件名生成,生成规则为:
master文件名去除文件后缀 + slave前缀名 + slave文件后缀名。
例如,master文件名为:
M00/00/01/wKjReUsKNqEAAAAAAAAADy96xyo28.txt

slave前缀名为-memo,则slave文件名为:
M00/00/01/wKjReUsKNqEAAAAAAAAADy96xyo28-memo.txt
作者: 5d6d_andy    时间: 2009-11-23 16:23
恭喜,恭喜!

但是,我的问题不是主从之间文件名的问题。我的意思是我把一个文件(test.part1.rar)上传到fastdfs后文件名变为yvnufEsKJ-IAAAAAAAfvQHue_jQ07.rar这样的形式,第二个文件(test.part2.rar)上传到fastdfs后变成xxxxxxxxxxxx.rar,总之和前面的文件名肯定是不一样的。跟上传前也是不一样的。
我想问的是,能不能实现上传后文件名不变,或者上传后文件的后缀名能否是两个或者三个,(比如test.part1.rar变成yvnufEsKJ-IAAAAAAAfvQHue_jQ07.part1.rar)
作者: happy_fish100    时间: 2009-11-23 18:00
标题: 回复 #3 5d6d_andy 的帖子
我上面说的和你想要的是一个意思啊!

例如,上传master文件后,FastDFS返回的master文件名为:
M00/00/01/wKjReUsKNqEAAAAAAAAADy96xyo28.rar

slave 1前缀名为.part1,则slave 1文件名为:
M00/00/01/wKjReUsKNqEAAAAAAAAADy96xyo28.part1.rar

slave 2前缀名为.part2,则slave 2文件名为:
M00/00/01/wKjReUsKNqEAAAAAAAAADy96xyo28.part2.rar

如此等等。
作者: 5d6d_andy    时间: 2009-11-24 17:36
还有一个问题是,例如: aaaa.tar.gz 这样的文件上传后变成 xxxxx.gz 这样就会造成解压缩异常.
能不能让保证为两个后缀名?
作者: happy_fish100    时间: 2009-11-25 09:45
标题: 回复 #5 5d6d_andy 的帖子
你可以指定文件后缀名:tar.gz
目前支持的最大扩展名长度是5,新版V1.23将改为6。这样就可以支持tar.gz这样的文件后缀名了。
作者: Kagilo    时间: 2009-11-26 11:59
扩展名长度改改吧。。。7也行
作者: happy_fish100    时间: 2009-11-26 13:42
标题: 回复 #7 Kagilo 的帖子
V1.23中将扩展名最大长度设置为6了。
除了tar.gz这种比较特殊的扩展名外,还有其他像这么长的扩展名么?
作者: 5d6d_andy    时间: 2009-11-30 13:32
我已经安装了最新版本1.23,当我用fdfs_test upload时,出现了问题,出现“storage_upload_slave_by_filename” 到这里就不动了,不能返回slave的url地址,半天也过不去。

另外,我想问问,这个关于文件后缀名修改的功能如何使用呢。
作者: happy_fish100    时间: 2009-11-30 13:37
标题: 回复 #9 5d6d_andy 的帖子
V1.23今天上午才发布的。从google code下载的最新源码包么?
需要重新编译并重启tracker和storage server。
客户端端也要重新编译的。
作者: 5d6d_andy    时间: 2009-11-30 13:39
是的,下载最新的了。并且重新编译,重启了服务。fdfs_test 时等了好久出现了这样的错误。

group_name=5d6dgroup1, ip_addr=124.238.249.205, port=23000
storage_upload_by_filename
source ip address: 124.238.249.205
file timestamp=2009-11-30 13:35:58
file size=394
file url: http://124.238.249.208:8000/5d6d ... AAAABijSLI7w57.conf
storage_upload_slave_by_filename
[2009-11-30 13:36:59] ERROR - file: tracker_proto.c, line: 37, server: 124.238.249.208:22122, recv data fail, errno: 110, error info: Connection timed out
upload slave file fail, error no: 110, error info: Connection timed out


我想知道这个功能主要是做什么用。

[ 本帖最后由 5d6d_andy 于 2009-11-30 13:50 编辑 ]
作者: happy_fish100    时间: 2009-11-30 18:53
标题: 回复 #11 5d6d_andy 的帖子
从tracker server接收数据失败?
你查一下tracker的日志,看出错信息是什么?
作者: happy_fish100    时间: 2010-08-11 15:16
总结一下主从文件ID规则:
主文件ID = 主文件名 + 主文件扩展名
从文件ID = 主文件名 + 从文件后缀名 + 从文件扩展名

注:从文件后缀名最长16个字节。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2