需要用到fastdfs的maven依赖:
<!-- fastdfs 的 maven依赖-->
<dependency>
<groupId>net.oschina.zcx7878</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27.0.0</version>
</dependency>
fdfs.properties配置文件
fastdfs.connect_timeout_in_seconds = 5
fastdfs.network_timeout_in_seconds = 30
fastdfs.charset = UTF-8
fastdfs.http_anti_steal_token = false
fastdfs.http_secret_key = FastDFS1234567890
fastdfs.http_tracker_http_port = 80
fastdfs.tracker_servers = 192.168.1.201:22122
java操作代码
import org.csource.common.NameValuePair;
import org.csource.fastdfs.*;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class HuashengshuApplicationTests {
@Test
void contextLoads() {
try {
//1、 初始化fastdfs客户端配置文件
ClientGlobal.initByProperties("fastdfs/fdfs.properties");// 加载properties配置文件
System.out.println("network_timeout=" + ClientGlobal.g_network_timeout + "ms");//输出properties中配置的参数,检测properties文件是否生效
System.out.println("charset=" + ClientGlobal.g_charset);
//2、 创建tracker的客户端
TrackerClient tracker = new TrackerClient();// 创建tracker客户端对象
TrackerServer trackerServer = tracker.getConnection();//获得tracker连接对象
//3、创建storage的客户端
StorageServer storageServer = null;
/*在properties文件中只需要配置tracker服务器的ip,storage的ip通过tracker服务器来获取
获取storage
*/
StorageClient1 client = new StorageClient1(trackerServer, storageServer);//4、通过tracker服务器返回storage服务器对象(客户端)
//设置文件元信息这里只上传一个文件
NameValuePair[] metaList = new NameValuePair[1];
metaList[0] = new NameValuePair("testUpload", "");//
String fileId = client.upload_file1("/opt/3.jpg", null, metaList);//上传 本地电脑文件(完整路径)到storage服务器
System.out.println("upload success. file id is: " + fileId);//上传成功返回文件id,如果storage服务器配置了nginx服务器 可以通过ip+fileId来访问到上传的文件
// 下载文件
// int i = 0;
// while (i++ < 10) {
// byte[] result = client.download_file1(fileId);//下载文件操作
// System.out.println(i + ", download result is: " + result.length);
// }
trackerServer.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
总结:分四步
- 初始化配置文件
- 通过trackerClient和 配置文件 获取trackerServer
- 通过 storageClient和 trackerServer 来获取storage服务器
- 真正的文件操作