FastDFS java api调用
生活随笔
收集整理的這篇文章主要介紹了
FastDFS java api调用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
介紹
本文講述如何通過(guò)java調(diào)用FastDFS的文件上傳、下載及刪除,提供示例代碼。
?
編譯fastdfs-client-java
需要環(huán)境git、jdk8、maven
git clone https://github.com/happyfish100/fastdfs-client-java.git
cd fastdfs-client-java/
mvn package
?
配置
target目錄中就會(huì)產(chǎn)生fastdfs-client-java-x.jar文件
復(fù)制該文件到項(xiàng)目中的src/main/resources/lib目錄中
添加maven依賴
<dependency><groupId>org.csource</groupId><artifactId>fastdfs-client-java</artifactId><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/fastdfs-client-java-1.27-SNAPSHOT.jar</systemPath><version>1.27-SNAPSHOT</version></dependency>?
resources配置目錄下添加配置文件fdfs_client.conf
tracker_server=192.168.81.143:22122
#注意ip和端口要指向服務(wù)器的fastdfs服務(wù),如果有防火墻的要做好開放處理
?
代碼實(shí)現(xiàn)
?
-------FastDFSHelper.java
import lombok.extern.slf4j.Slf4j; import org.csource.common.MyException; import org.csource.fastdfs.ClientGlobal; import org.csource.fastdfs.StorageClient; import org.csource.fastdfs.TrackerClient; import org.csource.fastdfs.TrackerServer;import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;@Slf4j public final class FastDFSHelper {private static TrackerClient trackerClient;static {try {ClientGlobal.init("fdfs_client.conf");trackerClient = new TrackerClient();} catch (IOException | MyException e) {log.error("error", e);}}/*** 向FastDFS上傳文件** @param localFilename 本地文件名* @return 上傳成功,返回組名和該文件在FastDFS中的名稱;上傳失敗,返回null*/public static String[] uploadFile(String localFilename) {TrackerServer trackerServer;try {trackerServer = trackerClient.getConnection();} catch (IOException e) {log.error("error", e);return null;}StorageClient storageClient = new StorageClient(trackerServer, null);try {String[] arr = storageClient.upload_file(localFilename, null, null);if (arr == null || arr.length != 2) {log.error("向FastDFS上傳文件失敗");} else {log.info("向FastDFS上傳文件成功");log.info("id:{}/{}",arr);return arr;}} catch (IOException | MyException e) {log.error("error", e);} finally {closeTrackerServer(trackerServer);}return null;}/*** 從FastDFS下載文件** @param localFilename 本地文件名* @param groupName 文件在FastDFS中的組名* @param remoteFilename 文件在FastDFS中的名稱*/public static boolean downloadFile(String localFilename, String groupName, String remoteFilename) {TrackerServer trackerServer;try {trackerServer = trackerClient.getConnection();} catch (IOException e) {log.error("error", e);return false;}StorageClient storageClient = new StorageClient(trackerServer, null);File file = new File(localFilename);try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file))) {byte[] content = storageClient.download_file(groupName, remoteFilename);if (content == null || content.length == 0) {log.error("文件大小為空!");boolean flag = file.delete();log.info("刪除文件結(jié)果:{}", flag);return false;}bos.write(content);log.info("成功下載文件: " + localFilename);return true;} catch (IOException | MyException e) {log.error("error", e);} finally {closeTrackerServer(trackerServer);}return false;}/*** 從FastDFS刪除文件** @param groupName 文件在FastDFS中的組名* @param remoteFilename 文件在FastDFS中的名稱*/public static boolean deleteFile(String groupName, String remoteFilename) {TrackerServer trackerServer;try {trackerServer = trackerClient.getConnection();} catch (IOException e) {log.error("error", e);return false;}StorageClient storageClient = new StorageClient(trackerServer, null);try {int i = storageClient.delete_file(groupName, remoteFilename);if (i == 0) {log.info("FastDFS刪除文件成功");return true;} else {log.info("FastDFS刪除文件失敗");return false;}} catch (IOException | MyException e) {log.error("error", e);} finally {closeTrackerServer(trackerServer);}return false;}private static void closeTrackerServer(TrackerServer trackerServer) {try {if (trackerServer != null) {log.info("關(guān)閉trackerServer連接");trackerServer.close();}} catch (IOException e) {log.error("error", e);}} }----------FastdfsdemoApplication.java
public class FastdfsdemoApplication {public static void main(String[] args) {String[] arr= FastDFSHelper.uploadFile("/home/whq/a.txt");if(arr!=null){boolean result= FastDFSHelper.downloadFile("/home/whq/a2.txt",arr[0],arr[1]);boolean result2=FastDFSHelper.deleteFile(arr[0],arr[1]);}} }?參考資料
https://blog.csdn.net/csdlwzy/article/details/83309831
?
總結(jié)
以上是生活随笔為你收集整理的FastDFS java api调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 抓包与分析
- 下一篇: D3---01基础的柱状图制作(转)