日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

FastDFS java api调用

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。