FastDfs的快速入门,三分钟带你上传下载文件到云服务器

简介: FastDfs的快速入门,三分钟带你上传下载文件到云服务器

第一步,下载源文件


下载地址:https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master

解压之后他是一个源文件,所以需要大家进行打包成一个jar包并且在自己的maven仓库去引用。

123dd0fdb33b41b897f6ac25127bac7d.png

第二步,maven项目中引用

打包之后我们看到版本是1.29-SNAPSHOT,所以我们在maven中引入:


12c077d0779342f4a82141e301f01b40.png


第三步,编写fastdfs.conf文件:


d37ee7d54554420096f3ad0cde8a6168.png

tracker_server=127.0.0.1:22122

此处填写自己服务器的ip和fastdfs的端口

第四步,编写工具类,实现上传功能

public static void upload() {
        TrackerServer ts = null;
        StorageServer ss = null;
        StorageClient sc = null;
        try {
            //加载配置文件,目的是为了获取所有的TrackerServer的地址信息
            ClientGlobal.init("fastdfs.conf");
            TrackerClient tc = new TrackerClient();
            ts = tc.getTrackerServer();
            ss = tc.getStoreStorage(ts);
            //创建Storage的客户端对象,需要利用这个对象来操作FastDFS,实现文件的上传下载和删除
            sc = new StorageClient(ts, ss);
            //上传文件到FastDFS
            //参数 1 为需要上传的文件在本地磁盘的绝对路径
            //参数 2 为需要上传的文件的扩展名
            //参数 3 为需要上传的文件的属性文件通常为null不上传,这些文件的属性例如文件大小以及类型等信息通常需要记录到数据库中
            //返回一个字符串数组,这个数组中的数据非常重要必须要妥善保管
            //注意:这个数组中的第一个元素为文件所在的FastDFS的组名,第二个元素为文件在FastDFS中的远程文件名称
            //   这两个数据通常我们是需要写入到数据库中的
            String[] result = sc.upload_file("/Users/wangfugui/Downloads/20220529151321.png", "png", null);
            for (String str : result) {
                System.out.println(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            if (sc != null) {
                try {
                    sc.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

5c77b0b8b9a84c4d82762b324e36112c.png


第五步,编写下载方法

public static void download() {
        TrackerServer ts = null;
        StorageServer ss = null;
        StorageClient sc = null;
        try {
            //加载配置文件,目的是为了获取所有的TrackerServer的地址信息
            ClientGlobal.init("fastdfs.conf");
            TrackerClient tc = new TrackerClient();
            ts = tc.getTrackerServer();
            ss = tc.getStoreStorage(ts);
            //创建Storage的客户端对象,需要利用这个对象来操作FastDFS,实现文件的上传下载和删除
            sc = new StorageClient(ts, ss);
            int downloadFile = sc.download_file("group1", "M00/00/00/rBJzqmKgR4OACNHEABeAcCmFn1g961.png", "/Users/wangfugui/Downloads/ss.png");
            System.out.println(downloadFile);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            try {
                if (sc != null) {
                    sc.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

3d572bf2dcfc41999eeb9fd64da97296.png

第六步,编写删除方法

 public static void delete() {
        TrackerServer ts = null;
        StorageServer ss = null;
        StorageClient sc = null;
        try {
            //加载配置文件,目的是为了获取所有的TrackerServer的地址信息
            ClientGlobal.init("fastdfs.conf");
            TrackerClient tc = new TrackerClient();
            ts = tc.getTrackerServer();
            ss = tc.getStoreStorage(ts);
            //创建Storage的客户端对象,需要利用这个对象来操作FastDFS,实现文件的上传下载和删除
            sc = new StorageClient(ts, ss);
            int deleteFile = sc.delete_file("group1", "M00/00/00/rBJzqmKgR4OACNHEABeAcCmFn1g961.png");
            System.out.println(deleteFile);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            try {
                if (sc != null) {
                    sc.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

e7a31583242d46bda47dfba36209c36f.png

第七步,编写main方法进行测试

image.png


上传之后返回一个数组,里面的东西长这样:

group1
M00/00/00/rBJzqmKgR4OACNHEABeAcCmFn1g961.png

我们去/00/00/文件夹里面看一下:

4edfa344e14143f6bb42a78ff7070d9a.png


删除方法,传入组名称和文件路径,就会发现服务器里面的文件删除了,

下载方法传入组名称和文件路径和本地路径,就可以发现下载成功:


d3f0a40883134b509b85377d603a9d6d.png


image.png


仓库地址:

https://gitee.com/WangFuGui-Ma/fastdfs-quickstart


相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
126 0
|
4月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
506 17
|
4月前
|
自然语言处理 Unix Linux
解决服务器中Jupyter笔记本的文件名字符编码问题
通过上述步骤,可以有效解决Jupyter笔记本的文件名字符编码问题,确保所有文件能在服务器上正常访问并交互,避免因编码问题引起的混淆和数据丢失。在处理任何编码问题时,务必谨慎并确保备份,因为文件名变更是
184 17
|
5月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
277 18
|
4月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
967 0
|
7月前
|
Python
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
345 69
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
237 9
|
8月前
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
375 18
|
8月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
10月前
|
存储 安全 网络安全
服务器感染了.baxia勒索病毒,如何确保数据文件完整恢复?
近年来,勒索病毒如.baxia不断演变,利用漏洞、社交工程等手段加密文件,威胁范围扩大。加密货币的兴起使其支付方式更匿名,追踪困难。技术支持尤为重要,添加技术服务号(shuju315),专业团队提供数据恢复方案。面对复杂解密要求,包括赎金支付、个人信息提供和执行特定操作,需保持冷静并寻求帮助。防御措施包括加强安全意识、定期备份数据、安装杀毒软件、避免未知文件、更新系统及制定应急响应计划。
454 11

热门文章

最新文章

下一篇
oss云网关配置