当前位置:网站首页>A quick start to fastdfs takes you three minutes to upload and download files to the ECS
A quick start to fastdfs takes you three minutes to upload and download files to the ECS
2022-07-04 21:16:00 【Wang Fugui who lost his hair】
Prerequisite ,linux install fastdfs, If it is not installed, please check the previous blog article to install , Otherwise it can't go on .
https://blog.csdn.net/csdnerM/article/details/125179633
First step , Download the source file
Download address :https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master
After decompression, it is a source file , So we need to pack it into one jar Pack and in your own maven Warehouse dereference .
The second step ,maven Quote in the project
After packaging, we see that the version is 1.29-SNAPSHOT, So we are maven Introduction in :
The third step , To write fastdfs.conf file :

tracker_server=127.0.0.1:22122
Fill in your server's ip and fastdfs The port of
Step four , Write a tool class , Realize the upload function
public static void upload() {
TrackerServer ts = null;
StorageServer ss = null;
StorageClient sc = null;
try {
// Load profile , The purpose is to get all TrackerServer Address information for
ClientGlobal.init("fastdfs.conf");
TrackerClient tc = new TrackerClient();
ts = tc.getTrackerServer();
ss = tc.getStoreStorage(ts);
// establish Storage Client object of , You need to use this object to operate FastDFS, Upload, download and delete files
sc = new StorageClient(ts, ss);
// Upload files to FastDFS
// Parameters 1 The absolute path of the file to be uploaded on the local disk
// Parameters 2 Is the extension of the file to be uploaded
// Parameters 3 The attribute file for the file to be uploaded is usually null Do not upload , The attributes of these files, such as file size and type, usually need to be recorded in the database
// Returns an array of strings , The data in this array is very important and must be kept properly
// Be careful : The first element in this array is where the file is located FastDFS Group name , The second element is the file in FastDFS Remote file name in
// These two data usually need to be written into the database
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();
}
}
}
}

Step five , Write the download method
public static void download() {
TrackerServer ts = null;
StorageServer ss = null;
StorageClient sc = null;
try {
// Load profile , The purpose is to get all TrackerServer Address information for
ClientGlobal.init("fastdfs.conf");
TrackerClient tc = new TrackerClient();
ts = tc.getTrackerServer();
ss = tc.getStoreStorage(ts);
// establish Storage Client object of , You need to use this object to operate FastDFS, Upload, download and delete files
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();
}
}
}

Step six , Write deletion method
public static void delete() {
TrackerServer ts = null;
StorageServer ss = null;
StorageClient sc = null;
try {
// Load profile , The purpose is to get all TrackerServer Address information for
ClientGlobal.init("fastdfs.conf");
TrackerClient tc = new TrackerClient();
ts = tc.getTrackerServer();
ss = tc.getStoreStorage(ts);
// establish Storage Client object of , You need to use this object to operate FastDFS, Upload, download and delete files
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();
}
}
}

Step seven , To write main Method to test

After uploading, an array is returned , What's inside looks like this :
group1
M00/00/00/rBJzqmKgR4OACNHEABeAcCmFn1g961.png
Let's go to the /00/00/ Look inside the folder :
Delete method , Pass in the group name and file path , You will find that the files in the server have been deleted ,
The download method passes in the group name and file path and local path , You can find that the download is successful :

Warehouse address :
边栏推荐
- Y56. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (29)
- PS vertical English and digital text how to change direction (vertical display)
- Routing configuration and connectivity test of Huawei simulator ENSP
- c语言函数形参自增自减情况分析
- RFID仓库管理系统解决方案有哪些功能模块
- 多模输入事件分发机制详解
- Procurement in software development
- 【1200. 最小绝对差】
- [observation] Lenovo: 3x (1+n) smart office solution, releasing the "multiplier effect" of office productivity
- Go notes (3) usage of go language FMT package
猜你喜欢

render函数与虚拟dom

杰理之AD 系列 MIDI 功能说明【篇】

Redis:Redis配置文件相关配置、Redis的持久化

In the face of the same complex test task, why can the elder sort out the solution quickly? Ali's ten-year test engineers showed their skills

Advantages of RFID warehouse management system solution

Golang中UTF编码和字符集

接口设计时的一些建议

admas零件名重复

MySQL --- 数据库查询 - 聚合函数的使用、聚合查询、分组查询

【观察】联想:3X(1+N)智慧办公解决方案,释放办公生产力“乘数效应”
随机推荐
6月“墨力原创作者计划”获奖名单公布!邀您共话国产数据库
From automation to digital twins, what can Tupo do?
The concept and application of hash table
Android原生数据库的基本使用和升级
测试用例 (TC)
插入排序,选择排序,冒泡排序
VIM asynchronous problem
基于OpenCV haarcascades的对象检测
JS卡牌样式倒计时天数
实战模拟│JWT 登录认证
偷窃他人漏洞报告变卖成副业,漏洞赏金平台出“内鬼”
Huawei ENSP simulator configures ACL access control list
Configuration of DNS server of Huawei ENSP simulator
In the face of the same complex test task, why can the elder sort out the solution quickly? Ali's ten-year test engineers showed their skills
宝塔 7.9.2 宝塔控制面板绕过 手机绑定认证 绕过官方认证
Vue cleans up the keepalive cache scheme in a timely manner
网件r7000梅林系统虚拟内存创建失败,提示USB磁盘读写速度不满足要求解决办法,有需要创建虚拟内存吗??
Actual combat simulation │ JWT login authentication
黄金k线图中的三角形有几种?
嵌入式TC 测试用例