FastDFS—学习过程记录—FastDFS的Java程序操作
1.fastdfs-client-java是官方的源代码
2.引入FastFDS的Maven依赖包
- 这个依赖没有出现在Maven的中央库,因此我们需要要对源码进行编译将客户端的代码编译到maven的本地库中或直接拷贝依赖包到本地Maven仓库中
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27-SNAPSHOT</version>
</dependency>
3.FastFDS的上传功能java代码
public static void fileUpload() {
TrackerServer ts = null;
StorageServer ss = null;
try {
//1.全局初始化,读取配置文件,用于将所有的tracker地址读取到内存中
ClientGlobal.init("fastfds.conf");
//2.创建TrackerClient对象
TrackerClient tc = new TrackerClient();
//3.创建TrackerServer对象
ts = tc.getConnection();
//4.创建StorageServler对象
ss = tc.getStoreStorage(ts);
//5.定义storage的客户端对象,需要这个对象来完成上传下载和删除
//5.创建StorageClient对象,这个对象完成对文件的操作
StorageClient storageClient = new StorageClient(ts, ss);
//6.上传文件 第一个参数:本地文件路径 第二个参数:上传文件的后缀 第三个参数:文件信息,返回一个String[]数组,这个数据对我们非常重要需要我们妥善保管,建议存入数据库
//7.数组中的 第一个元素是文件所在的组名,第二个元素是文件所在的远程路径名称
String[] uploadArray = storageClient.upload_file("D:/aa.txt", "txt", null);
for (String str : uploadArray) {
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
} catch (MyException e) {
e.printStackTrace();
} finally {
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ts != null) {
try {
ts.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
4.FastFDS的下载功能java代码
public static void fileDownload() {
TrackerServer ts = null;
StorageServer ss = null;
try {
//1.全局初始化,读取配置文件,用于将所有的tracker地址读取到内存中
ClientGlobal.init("fastfds.conf");
//2.创建TrackerClient对象
TrackerClient tc = new TrackerClient();
//3.创建TrackerServer对象
ts = tc.getConnection();
//4.创建StorageServler对象
ss = tc.getStoreStorage(ts);
//5.定义storage的客户端对象,需要这个对象来完成上传下载和删除
//5.创建StorageClient对象,这个对象完成对文件的操作
StorageClient storageClient = new StorageClient(ts, ss);
//6.文件下载,参数1:文件所在远程服务器分组,参数2:需要下载文件的远程文件名,参数3 需要保存的本地文件名,
// 返回一个int类型的数据,返回0表示成功,其他值均表示失败
int group1 = storageClient.download_file("group1",
"M00/00/00/wKjrgFxOqueAAPWKAAAAKAM14xY563.txt", "E:/bb.txt");
} catch (IOException e) {
e.printStackTrace();
} catch (MyException e) {
e.printStackTrace();
} finally {
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ts != null) {
try {
ts.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
5.FastFDS的删除功能java代码
public static void fileDelete() {
TrackerServer ts = null;
StorageServer ss = null;
try {
//1.全局初始化,读取配置文件,用于将所有的tracker地址读取到内存中
ClientGlobal.init("fastfds.conf");
//2.创建TrackerClient对象
TrackerClient tc = new TrackerClient();
//3.创建TrackerServer对象
ts = tc.getConnection();
//4.创建StorageServler对象
ss = tc.getStoreStorage(ts);
//5.定义storage的客户端对象,需要这个对象来完成上传下载和删除
//5.创建StorageClient对象,这个对象完成对文件的操作
StorageClient storageClient = new StorageClient(ts, ss);
//6.文件删除,参数1:需要删除的文件所在远程服务器分组,参数2:需要删除的下载文件的远程文件名
// 返回一个int类型的数据,返回0表示成功,其他值均表示失败
int group1 = storageClient.delete_file("group1",
"M00/00/00/wKjrgFxOqueAAPWKAAAAKAM14xY563.txt");
} catch (IOException e) {
e.printStackTrace();
} catch (MyException e) {
e.printStackTrace();
} finally {
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ts != null) {
try {
ts.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}