Java fastdfs客户端实现上传下载文件
作者:一路繁花似锦绣前程 时间:2023-11-26 09:45:41
一、项目结构
二、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网络通信超时时间
fastdfs.network_timeout_in_seconds=30
#字符编码
fastdfs.charset=utf-8
#tracker服务器地址,多个地址中间用英文逗号分隔
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);
//创建storageClient
StorageClient1 storageClient1 = new StorageClient1(trackerServer, storeStorage);
//向storage服务器上传文件
//本地文件的路径
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);
//创建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();
}
}
}
来源:https://www.cnblogs.com/linding/p/13737440.html
标签:Java,fastdfs,客户端
0
投稿
猜你喜欢
ProtoStuff不支持BigDecimal序列化及反序列化详解
2022-09-19 06:53:30
Java 延迟队列的常用的实现方式
2022-06-30 13:57:00
c# WPF中的TreeView使用详解
2021-05-24 15:17:58
Android 验证码功能实现代码
2023-06-12 23:19:06
Android如何利用RecyclerView实现列表倒计时效果实例代码
2023-01-24 08:08:53
java数据结构与算法数组模拟队列示例详解
2021-07-23 16:50:24
Android创建与解析XML(二)——详解Dom方式
2023-08-20 02:30:05
浅谈C#在网络波动时防重复提交的方法
2022-07-23 22:37:01
Android中volley封装实践记录
2021-07-05 19:55:03
Android WebView基础应用详解
2023-09-30 07:36:46
Java之String、StringBuffer、StringBuilder的区别分析
2022-12-29 10:38:05
Eclipse插件大全 挑选最牛的TOP30(全)
2023-06-29 09:34:50
浅谈Java编程中的synthetic关键字
2022-01-27 18:48:41
Java中Synchronized的用法解析
2023-07-28 22:40:51
Android AlertDialog自定义样式实现代码
2023-07-08 13:10:06
使用Android Studio创建OpenCV4.1.0 项目的步骤
2022-05-03 23:16:42
深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格
2023-05-25 04:52:01
opencv实现读取视频保存视频
2021-08-16 15:57:50
SpringBoot遇到的坑@Qualifier报红的解决
2022-06-03 07:49:55
java 在Jetty9中使用HttpSessionListener和Filter
2021-10-01 14:44:00