FastDFS上传文件示例
发布日期:2021-06-29 11:14:39 浏览次数:2 分类:技术文章

本文共 2238 字,大约阅读时间需要 7 分钟。

FastDFS介绍

1. 简介

    FastDFS 是用 c 语言编写的一款开源的分布式文件系统,拥有冗余备份、负载均衡、线性扩容等机制,使用 FastDFS 可以提供文件上传、下载等服务。

2. 负载均衡和冗余备份

在这里插入图片描述
    FastDFS 中包括 Tracker server 和 Storage Server。Tracker Server 的作用是负载均衡和调度,我们在上传文件的时候,TrackerServer 根据一定的策略找到可用的 storage Server,具体的上传下载等操作由 Storage Server 来完成。
    Storage Server 的作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上,Storage Server 使用的是操作系统的文件系统来管理文件。Storage 集群分为多个组,每个组之间存储的内容是不同的,但是每个组内存储的内容是相同,这样就实现了冗余备份。

3. 线性扩容

    FastDFS 扩容分为两种:横向扩容和竖向扩容。横向扩容指新增一个 Storage 组,竖向扩容指在同一个组中增加服务器。一个 FastDFS系统 的存储容量等于所有组的存储容量之和,但是每一个组的存储容量取决于存储容量最小的服务器,所以同一个组中的存储容量要大致相等,否则会造成空间浪费。

上传文件示例

1. 上传文件的流程

在这里插入图片描述
① 初始化链接信息
② 创建一个Tracker客户端,目的是为了链接Tracker获取TrackerServer对象
③ 通过 TrackerServer 创建一个 Storage客户端 对象,该对象的作用是操作Storage
④ 通过Storage客户端实现文件上传
⑤ 获取文件上传信息

明白了上传文件的步骤,接下来就可以写代码来上传文件了。

1) 首先上传文件要依赖 FastDFS 客户端 jar 包。
       中央仓库中并没有收录 FastDFS 客户端的 jar 包,所以需要手动将 jar 包安装到本地仓库中。

mvn install:install-file -DgroupId=org.csource.fastdfs -DartifactId=fastdfs  -Dversion=1.2 -Dpackaging=jar -Dfile=d:\setup\fastdfs_client_v1.20.jar

2)在 pom 文件中引入 jar 包的坐标

org.csource.fastdfs
fastdfs

3)将连接信息写入配置文件中

在这里插入图片描述
4)根据上传文件的步骤写代码

/**     * 实现FastDFS文件上传     * @param confFilename:链接tracker的配置文件全路径     * @param fileName:上传文件的全路径     * @return:地址信息     */    public static String[] upload(String confFilename,String fileName) throws Exception {
confFilename = getConfig(confFilename); fileName = getConfig(fileName); // 1.初始化链接信息 ClientGlobal.init(confFilename); // 2.创建一个Tracker客户端,目的是为了链接Tracker获取TrackerServer对象 TrackerClient trackerClient = new TrackerClient(); TrackerServer trackerServer = trackerClient.getConnection(); // 3.通过TrackerServer创建一个Storage客户端对象,该对象的作用是操作Storage StorageClient storageClient = new StorageClient(trackerServer,null); // 4.通过Storage客户端实现文件上传 String[] address = storageClient.upload_file(fileName, null, null); // 5.获取文件上传信息 return address; } public static String getConfig(String path){
if (path.startsWith("classpath:")){
path = path.replace("classpath:",UploadUtils.class.getResource("/").getPath()); } return path; }

上传成功,会将地址返回:

在这里插入图片描述
2. 下载文件的流程
在这里插入图片描述

转载地址:https://blog.csdn.net/zwj_jyzl/article/details/103401461 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Zookeeper集群
下一篇:linux安装FastDFS+Nginx

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月10日 16时36分50秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章