Java fastdfs客戶端實(shí)現(xiàn)上傳下載文件
一、項目結(jié)構(gòu)

二、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>A01fastdfs</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs-client-java -->
<dependency>
<groupId>net.oschina.zcx7878</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27.0.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.9</source>
<target>1.9</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
三、fastdfs-client.properties
#http連接超時時間
fastdfs.connect_timeout_in_seconds=5
#tracker和storage網(wǎng)絡(luò)通信超時時間
fastdfs.network_timeout_in_seconds=30
#字符編碼
fastdfs.charset=utf-8
#tracker服務(wù)器地址,多個地址中間用英文逗號分隔
fastdfs.tracker_servers=192.168.2.105:22122
四、測試
package com.wuxi.test;
import org.csource.fastdfs.*;
import org.junit.Test;
import java.io.File;
import java.io.FileOutputStream;
public class MyTest {
//上傳文件
@Test
public void testUpload() {
try {
//加載fastdfs-client.properties配置文件
ClientGlobal.initByProperties("config/fastdfs-client.properties");
//定義TrackerClient,用于請求TrackerServer
TrackerClient trackerClient = new TrackerClient();
//連接tracker
TrackerServer trackerServer = trackerClient.getConnection();
//獲取storage
StorageServer storeStorage = trackerClient.getStoreStorage(trackerServer);
//創(chuàng)建storageClient
StorageClient1 storageClient1 = new StorageClient1(trackerServer, storeStorage);
//向storage服務(wù)器上傳文件
//本地文件的路徑
String path = "F:/java/resource/data.txt";
//上傳成功后拿到文件Id
String fileId = storageClient1.upload_file1(path, "txt", null);
System.out.println(fileId);//group1/M00/00/00/wKgCaV9vaSaARBTKAAAAGjJpL2g017.txt
} catch (Exception e) {
e.printStackTrace();
}
}
//下載文件
@Test
public void testDownload() {
try {
//加載fastdfs-client.properties配置文件
ClientGlobal.initByProperties("config/fastdfs-client.properties");
//定義TrackerClient,用于請求TrackerServer
TrackerClient trackerClient = new TrackerClient();
//連接tracker
TrackerServer trackerServer = trackerClient.getConnection();
//獲取storage
StorageServer storeStorage = trackerClient.getStoreStorage(trackerServer);
//創(chuàng)建storageClient
StorageClient1 storageClient1 = new StorageClient1(trackerServer, storeStorage);
//下載文件
//文件id
String fileId = "group1/M00/00/00/wKgCaV9vaSaARBTKAAAAGjJpL2g017.txt";
byte[] bytes = storageClient1.download_file1(fileId);
//使用輸出流保存文件
FileOutputStream fileOutputStream = new FileOutputStream(new File("F:/data.txt"));
fileOutputStream.write(bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實(shí)現(xiàn)整合文件上傳到FastDFS的方法詳細(xì)
- Java實(shí)現(xiàn)圖片上傳至FastDFS入門教程
- Java 客戶端操作 FastDFS 實(shí)現(xiàn)文件上傳下載替換刪除功能
- Java使用OSS實(shí)現(xiàn)上傳文件功能
- Java下載https文件并上傳阿里云oss服務(wù)器
- Java微信小程序oss圖片上傳的實(shí)現(xiàn)方法
- java實(shí)現(xiàn)上傳文件到oss(阿里云)功能示例
- java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法
- Java實(shí)現(xiàn)Fast DFS、服務(wù)器、OSS上傳功能
相關(guān)文章
mybatis update set 多個字段實(shí)例
這篇文章主要介紹了mybatis update set 多個字段實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
mybatis使用foreach標(biāo)簽進(jìn)行嵌套插入
數(shù)據(jù)庫插入操作常見于多層架構(gòu)設(shè)計中,本文提供了一個具體的實(shí)現(xiàn)方案,涉及三層實(shí)體類結(jié)構(gòu),第一層實(shí)體類負(fù)責(zé)基本數(shù)據(jù)結(jié)構(gòu)的定義,第二層和第三層實(shí)體類則提供更詳細(xì)的業(yè)務(wù)邏輯處理,同時,文章還介紹了相應(yīng)的mapper接口和配置文件設(shè)置2024-09-09
SpringBoot進(jìn)行數(shù)據(jù)加密和解密的詳細(xì)指南
對稱加密算法使用相同的密鑰進(jìn)行加密和解密,其主要優(yōu)點(diǎn)包括速度快和實(shí)現(xiàn)簡單,常見的對稱加密算法有 AES、DES 等,本文將以 AES 為例,展示如何在 Spring Boot 項目中進(jìn)行數(shù)據(jù)加密和解密,需要的朋友可以參考下2024-11-11
spring啟動后保證創(chuàng)建的對象不被垃圾回收器回收
最近看到一個問題是,spring在啟動后如何保證創(chuàng)建的對象不被垃圾回收器回收?。所以本文結(jié)合jvm的垃圾回收機(jī)制和spring中的源代碼做出自己的一點(diǎn)猜測。有需要的朋友們可以參考借鑒。2016-09-09
Spring boot框架下的RabbitMQ消息中間件詳解
這篇文章詳細(xì)介紹了Spring Boot框架下的RabbitMQ消息中間件的基本概念、消息傳輸模型、環(huán)境準(zhǔn)備、Spring Boot集成以及消息生產(chǎn)和消費(fèi),感興趣的朋友跟隨小編一起看看吧2025-01-01
SpringBoot整合Redis實(shí)現(xiàn)訪問量統(tǒng)計的示例代碼
本文主要介紹了SpringBoot整合Redis實(shí)現(xiàn)訪問量統(tǒng)計的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
MyBatis驗證多級緩存及 Cache Aside 模式的應(yīng)用小結(jié)
本文介紹了MyBatis的多級緩存機(jī)制,包括本地緩存和全局緩存,并通過Spock測試框架驗證了多級緩存的實(shí)現(xiàn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-12-12

