Django下FastDFS的使用

对于文件存储来说,Django是带有默认的文件存储类的,官方文档如下:

The FileSystemStorage class¶
class FileSystemStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None)[源代码]¶
The FileSystemStorage class implements basic file storage on a local filesystem. It inherits from Storage and provides implementations for all the public methods thereof.

location¶
Absolute path to the directory that will hold the files. Defaults to the value of your MEDIA_ROOT setting.

base_url¶
URL that serves the files stored at this location. Defaults to the value of your MEDIA_URL setting.

file_permissions_mode¶
The file system permissions that the file will receive when it is saved. Defaults to FILE_UPLOAD_PERMISSIONS.

directory_permissions_mode¶
The file system permissions that the directory will receive when it is saved. Defaults to FILE_UPLOAD_DIRECTORY_PERMISSIONS.

注解

The FileSystemStorage.delete() method will not raise an exception if the given file name does not exist.

从文档可以看出的是Django对文件存储的支持还是挺好的,但是为什么有些地方会用Fast DFS呢?

        实际上,当文件较少的时候,django是可以应付的过来的。但当文件以海量形式出现的时候,Django就并不是那么好用了,于是Fast DFS应运而出。

        FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。可以说它就是为互联网而生,为大数据而生的。

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。 存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。跟踪器和存储节点都可以由一台多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

FastDFS系统结构如下图所示:

在Django中使用Fast DFS的流程如下:

 

总结来说为什么使用Fast DFS:

        一、解决海量存储,同时存储容量扩展方便

        二、解决文件内容重复

        三、结合Nginx提高网站提供图片的效率

东西是死的,人是活的,没有最好的方案,只有根据需求找到最适合的方案

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值