当前位置:网站首页>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 :
边栏推荐
- 黄金k线图中的三角形有几种?
- LeetCode 7. 整数反转
- Remember to build wheels repeatedly at one time (the setting instructions of obsidian plug-in are translated into Chinese)
- LeetCode 7. Integer inversion
- Procurement in software development
- admas零件名重复
- Idea configuration standard notes
- What are the functional modules of RFID warehouse management system solution
- 多模輸入事件分發機制詳解
- 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
猜你喜欢
Pytorch---使用Pytorch实现LinkNet进行语义分割
Gobang go to work fishing tools can be LAN / man-machine
【1200. 最小絕對差】
UTF encoding and character set in golang
D3.js+Three.js数据可视化3d地球js特效
华为ensp模拟器 实现多个路由器的设备可以相互访问
接口設計時的一些建議
shp数据制作3DTiles白膜
多模输入事件分发机制详解
NetWare r7000 Merlin system virtual memory creation failed, prompting that the USB disk reading and writing speed does not meet the requirements. Solution, is it necessary to create virtual memory??
随机推荐
福昕PDF编辑器v10.1.8绿色版
测试用例 (TC)
华为ensp模拟器 DNS服务器的配置
Y56. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (29)
网件r7000梅林系统5g不稳定 5g信号经常掉线解决方法
shp数据制作3DTiles白膜
Hands on deep learning (III) -- convolutional neural network CNN
杰理之AD 系列 MIDI 功能说明【篇】
华为模拟器ensp常用命令
Vue cleans up the keepalive cache scheme in a timely manner
WinCC7.5 SP1如何通过交叉索引来寻找变量及其位置?
Advantages of semantic tags and block level inline elements
Redis:Redis配置文件相关配置、Redis的持久化
Jmeter 之压测入门
[1200. Minimum absolute difference]
【申博攻略】六.如何联系心仪的博导
Pytorch---使用Pytorch实现LinkNet进行语义分割
PS竖排英文和数字文字怎么改变方向(变竖直显示)
Huawei ENSP simulator realizes communication security (switch)
Go language notes (2) some simple applications of go