FastDFS通过HTTP下载文件

发布于 2022-09-18 11:29:32 字数 1808 浏览 21 评论 0

本帖最后由 happy_fish100 于 2010-02-28 16:27 编辑

FastDFS从V1.20开始,支持通过HTTP协议下载文件。为了确保刚上传还没有同步到其他storage server的文件也能够被正确地下载,推荐HTTP下载文件的流程如下图:

http_download.jpg (21.96 KB, 下载次数: 119)

下载附件

2010-02-28 13:17 上传



为了确保文件能被正确下载,不要直接从一台storage server下载文件,而应该通过tracker server自带的web server跳转。
FastDFS为tracker和storage分别提供了内置的web server,使用了libevent的evhttp框架。evhttp采用了异步网络IO,可以支持大并发连接。目前采用了单线程模式,如果请求处理中不存在慢操作(如读取磁盘文件),此时不存在性能瓶颈,性能还是不错的。推荐的配置方案为:使用tracker自带的web server,在storage server上架设其他web server,如nginx、apache。
tracker和storage内置web server,下载文件的URL规则为: http://{ip_addr}:{port}/{file_id}
file_id:上传文件时,FastDFS server端返回的文件ID,包括组名(group name)和带路径的文件名,格式为:{group_name}/{Mxx}/filename
group_name:组名,也称作卷名
Mxx:xx为十六进制字符,表示存放的基路径(base path)序号。如果存放的base path只有一个,那固定就是M00
一个文件URL如:http://192.168.1.14:8080/group1/M00/00/00/wKgBDkuKAXcAAAAAAABdrXQrT3c970.jpg

在storage server上架设的web server,如果只有一个基路径,那只需要将web server的document root配置到{base_path}/data,对应的web路径配置为{group_name}/M00。
如果有多个base path,需要分别配置web路径。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

漫漫岁月 2022-09-25 11:29:32

本帖最后由 sunng 于 2010-03-10 16:09 编辑

fish大大您好,文中提到的"推荐的配置方案为:使用tracker自带的web server,在storage server上架设其他web server,如nginx、apache"

这个意思是要将storage server配置文件中的http.disabled设置为true,然后自己配置一个web server吗?

如果是这样的话,那自己配置的web server的端口如何设置呢?

水溶 2022-09-25 11:29:32

fish大大您好,文中提到的"推荐的配置方案为:使用tracker自带的web server,在storage server上架设其他we ...
sunng 发表于 2010-03-10 15:59

是的。配置storage.conf中的参数http.server_port为其他web server(如apache)提供的服务端口(如80)即可。

偷得浮生 2022-09-25 11:29:32

谢谢,另外
“在storage server上架设的web server,如果只有一个基路径,那只需要将web server的document root配置到{base_path}/data,对应的web路径配置为{group_name}/M00。”

这个里面的“对应的web路径配置为{group_name}/M00”指的是什么配置呢?我是想在storage上配置个nginx

不忘初心 2022-09-25 11:29:32

谢谢,另外
“在storage server上架设的web server,如果只有一个基路径,那只需要将web server的document ...
这个里面的“对应的web路径配置为{group_name}/M00”指的是什么配置呢?我是想在storage上配置个nginx
sunng 发表于 2010-03-10 18:33

就是WEB 访问的基路径。
例如:http://192.168.1.14:8080/group1/M00/00/00/wKgBDkuKAXcAAAAAAABdrXQrT3c970.jpg
URL路径前面的/group1/M00需要配置为WEB基路径。

淡笑忘祈一世凡恋 2022-09-25 11:29:32

我将storage server配置文件中的http.disabled设置为true,重启storage之后,tracker出现了下面这个错误打印

[2010-03-11 11:12:02] ERROR - file: tracker_mem.c, line: 2375, client ip: 10.60.32.64, http port 0 is not same in the group "group1", group http port is 8888

此时8888端口已经启动了我配置的web server,从storage上访问某个文件是可以的,但是从tracker上访问这个文件却访问不到,请问和上面这个错误打印有关系吗?

另外,如何修改某组storage的配置呢?(比如说我想修改group1的端口,从23000改成23100)

谢谢

冬天的雪花 2022-09-25 11:29:32

回复 6# sunng

组内所有storage server的服务端口包括HTTP端口,都必须相同。
如果要更改某个组的端口号,更改该组所有storage server的之后,重启该组所有storage server程序即可。

魂ガ小子 2022-09-25 11:29:32

本帖最后由 sunng 于 2010-03-11 11:47 编辑

哦,更改组配置这个明白了,但是实际操作中发现还需要重启所有的tracker。

那上面那行错误打印的那个是什么原因呢?

谢谢

感悟人生的甜 2022-09-25 11:29:32

回复 8# sunng

恩,有的情况下需要重启tracker server的。服务端口不会经常更改的吧?!

别理我 2022-09-25 11:29:32

回复 9# happy_fish100

    生产系统不会修改了,那。。那。。。那。。。还有另外一个问题您还没理我呢。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文