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

本文涉及的产品
云服务器 ECS,u1 2核4GB 3个月
云服务器 ECS,u1 4核8GB 1个月
云服务器 ECS,每月免费额度200元 3个月
简介: 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


相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
消息中间件 安全 Linux
服务器(Linux)在线下载activeMQ以及配置打开
服务器(Linux)在线下载activeMQ以及配置打开
36 3
|
2月前
|
网络协议
​LabVIEW从另一个VI或通过VI服务器访问正在运行的可执行文件
​LabVIEW从另一个VI或通过VI服务器访问正在运行的可执行文件
22 0
|
2月前
|
存储 SQL 数据挖掘
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
服务器数据恢复环境: 某大厂PS4000服务器,服务器上部署VMware ESXi虚拟化平台。 服务器故障: 机房断电,重启后服务器中的某台虚拟机不能正常启动。管理员查看虚拟机配置文件,发现无法启动的虚拟机的配置文件除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还存在。联系VMware原厂工程师进行诊断,VMware原厂工程师尝试新建一个虚拟机,但发现存储空间不足,于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除了。VMware工程师重新建了一个虚拟机,分配了固定大小的虚拟磁盘,为虚拟机安装了Window
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
|
4天前
|
数据安全/隐私保护
|
10天前
|
应用服务中间件 Linux 网络安全
一张图讲解单机FastDFS图片服务器安装步骤(修订版)
一张图讲解单机FastDFS图片服务器安装步骤(修订版)
|
13天前
|
弹性计算 安全 Linux
云服务器 ECS产品使用问题之自制镜像如何下载
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
2月前
|
数据安全/隐私保护
解决使用SourceTree下载GitLab服务器上的代码每次都需要输入密码问题
解决使用SourceTree下载GitLab服务器上的代码每次都需要输入密码问题
29 2
|
2月前
|
Linux 网络安全
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
134 3
|
2月前
|
Apache 项目管理 数据安全/隐私保护
Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器
Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器
|
2月前
|
数据安全/隐私保护
通过mac电脑的下载服务器的日志与日志筛选
通过mac电脑的下载服务器的日志与日志筛选
30 0