概述
FastDFS Java Api 操作
1.用eclipse把源代码打成jar文件:(源代码下载地址: https://github.com/happyfish100/fastdfs-client-java)
2、把fastdfs_client.jar 添加到Maven仓库
#执行 maven命令 添加fastdfs_client.jar 到maven 仓库
mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=5.0.4 -Dpackaging=jar -Dfile=/Users/shenwei/Desktop/fastdfs_client.jar
3、查看 fastdfs_client.jar。可以看到jar文件
4、创建一个maven项目,在pom中添加 fastdfs_client 依赖。
#添加依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>5.0.4</version>
</dependency>
5、在src/main/resource 下创建 fdfs_client.conf 配置文件
#fdfs_client.conf 配置
connect_timeout = 10
network_timeout = 30
charset = UTF-8
http.tracker_http_port = 8888
http.anti_steal_token = no
http.secret_key = FastDFS1234567890
tracker_server = 100.98.22.253:22122
#如果有多台服务,指定集群的IP
#tracker_server = 192.168.10.250:22122
6、测试fastDFS 上传、下载、删除、获取文件信息
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.FileInfo;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.junit.Test;
public class TestFastDfs {
//fdfs_client 核心配置文件
public String conf_filename = "src/main/resources/fdfs_client.conf";
@Test
public void testUpload() { //上传文件
TrackerServer trackerServer =null;
StorageServer storageServer = null;
try {
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
trackerServer = tracker.getConnection();
StorageClient1 client = new StorageClient1(trackerServer, storageServer);
//要上传的文件路径
String local_filename = "/Users/shenwei/Desktop/1.png";
// 这个参数可以指定,也可以不指定,如果指定了,可以根据 testGetFileMate()方法来获取到这里面的值
// NameValuePair nvp [] = new NameValuePair[]{
// new NameValuePair("age", "18"),
// new NameValuePair("sex", "male")
// };
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
// String fileIds[] = storageClient.upload_file(local_filename, "png", nvp);
String fileIds[] = storageClient.upload_file(local_filename, "png", null);
System.out.println(fileIds.length);
System.out.println("组名:" + fileIds[0]);
System.out.println("路径: " + fileIds[1]);
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(null!=storageServer) storageServer.close();
if(null!=trackerServer) trackerServer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Test
public void testDownload() { //下载文件
TrackerServer trackerServer =null;
StorageServer storageServer = null;
try {
String groupName = "group1";
String filePath = "M00/00/00/ZGIW_lpujW-ADvpRAAblmT4ACuo125.png";
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
trackerServer = tracker.getConnection();
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
byte[] bytes = storageClient.download_file(groupName, filePath);
String storePath = "/Users/shenwei/Desktop/download.png";
OutputStream out = new FileOutputStream(storePath);
out.write(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(null!=storageServer) storageServer.close();
if(null!=trackerServer) trackerServer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Test
public void testGetFileInfo(){ //获取文件信息
TrackerServer trackerServer =null;
StorageServer storageServer = null;
try {
String groupName = "group1";
String filePath = "M00/00/00/ZGIW_lpujW-ADvpRAAblmT4ACuo125.png";
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
trackerServer = tracker.getConnection();
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
FileInfo file = storageClient.get_file_info(groupName, filePath);
System.out.println("ip--->"+file.getSourceIpAddr());
System.out.println("文件大小--->"+file.getFileSize());
System.out.println("文件上传时间--->"+file.getCreateTimestamp());
System.out.println(file.getCrc32());
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(null!=storageServer) storageServer.close();
if(null!=trackerServer) trackerServer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Test
public void testGetFileMate(){ //获取文件的原数据类型
TrackerServer trackerServer =null;
StorageServer storageServer = null;
try {
String groupName = "group1";
String filePath = "M00/00/00/ZGIW_lpujW-ADvpRAAblmT4ACuo125.png";
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
trackerServer = tracker.getConnection();
StorageClient storageClient = new StorageClient(trackerServer,
storageServer);
//这个值是上传的时候指定的NameValuePair
NameValuePair nvps [] = storageClient.get_metadata(groupName, filePath);
if(null!=nvps && nvps.length>0){
for(NameValuePair nvp : nvps){
System.out.println(nvp.getName() + ":" + nvp.getValue());
}
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(null!=storageServer) storageServer.close();
if(null!=trackerServer) trackerServer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Test
public void testDelete(){ //删除文件
TrackerServer trackerServer =null;
StorageServer storageServer = null;
try {
String groupName = "group1";
String filePath = "M00/00/00/ZGIW_lpujW-ADvpRAAblmT4ACuo125.png";
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
trackerServer = tracker.getConnection();
StorageClient storageClient = new StorageClient(trackerServer,
storageServer);
int i = storageClient.delete_file(groupName, filePath);
System.out.println( i==0 ? "删除成功" : "删除失败:"+i);
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(null!=storageServer) storageServer.close();
if(null!=trackerServer) trackerServer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
最后
以上就是可靠汉堡为你收集整理的FastDFS Java Api 操作FastDFS Java Api 操作的全部内容,希望文章能够帮你解决FastDFS Java Api 操作FastDFS Java Api 操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复