博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fastdfs-client-java操作fastdfs
阅读量:5158 次
发布时间:2019-06-13

本文共 6366 字,大约阅读时间需要 21 分钟。

一、在 下载客户端,解压后并执行ant命令,在E:\tools\libs\fastdfs\fastdfs-client--master\src\build下会生成fastdfs_client.jar如图示

二、mvn安装fastdfs_client.jar,在cmd中执行命令

mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=5.0.4 -Dpackaging=jar -Dfile=D:\fastdfs_client.jar 

三、在eclipse中新建maven项目fastdfs-demo,在pom.xml中加入依赖如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<
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
>com.leech</
groupId
>
  
<
artifactId
>fastdfs-demo</
artifactId
>
  
<
version
>0.0.1-SNAPSHOT</
version
>
  
<
packaging
>jar</
packaging
>
 
  
<
name
>fastdfs-demo</
name
>
  
<
url
>http://maven.apache.org</
url
>
 
  
<
properties
>
    
<
project.build.sourceEncoding
>UTF-8</
project.build.sourceEncoding
>
  
</
properties
>
 
  
<
dependencies
>
    
<
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
>
     
    
<
dependency
>
        
<
groupId
>commons-io</
groupId
>
        
<
artifactId
>commons-io</
artifactId
>
        
<
version
>2.4</
version
>
    
</
dependency
>
     
  
</
dependencies
>
</
project
>

 

在src/main/resources中新建fdfs_client.conf文件,内容如下

connect_timeout = 2

network_timeout = 30

charset = UTF-8

http.tracker_http_port = 80

http.anti_steal_token = no

http.secret_key = FastDFS1234567890

tracker_server = 192.168.17.112:22122

#tracker_server = 192.168.0.119:22122

在src/main/java中创建TestFastDfs.java如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package 
com.leech.fastdfs.demo;
 
import 
java.io.FileNotFoundException;
import 
java.io.FileOutputStream;
import 
java.io.IOException;
import 
java.util.UUID;
 
import 
org.apache.commons.io.IOUtils;
import 
org.csource.common.MyException;
import 
org.csource.common.NameValuePair;
import 
org.csource.fastdfs.ClientGlobal;
import 
org.csource.fastdfs.FileInfo;
import 
org.csource.fastdfs.StorageClient;
import 
org.csource.fastdfs.StorageServer;
import 
org.csource.fastdfs.TrackerClient;
import 
org.csource.fastdfs.TrackerServer;
import 
org.junit.After;
import 
org.junit.Before;
import 
org.junit.Test;
 
public 
class 
TestFastDfs {
     
    
public 
String conf_filename = 
"D:\\stsworkspace\\fastdfs-demo\\src\\main\\resources\\fdfs_client.conf"
    
//public String local_filename = "D:\\stsworkspace\\fastdfs-demo\\src\\main\\resources\\fdfs_client.conf";
     
    
public 
String local_filename = 
"D:\\stsworkspace\\fastdfs-demo\\src\\main\\resources\\sprites.png"
;
 
    
@Before
    
public 
void 
setUp() 
throws 
Exception {
    
}
 
    
@After
    
public 
void 
tearDown() 
throws 
Exception {
    
}
 
    
@Test
    
public 
void 
testUpload() {
 
        
try 
            
ClientGlobal.init(conf_filename);
 
            
TrackerClient tracker = 
new 
TrackerClient(); 
            
TrackerServer trackerServer = tracker.getConnection(); 
            
StorageServer storageServer = 
null
;
 
            
StorageClient storageClient = 
new 
StorageClient(trackerServer, storageServer); 
//          NameValuePair nvp = new NameValuePair("age", "18"); 
            
NameValuePair nvp [] = 
new 
NameValuePair[]{ 
                    
new 
NameValuePair(
"age"
"18"
), 
                    
new 
NameValuePair(
"sex"
"male"
            
}; 
            
String fileIds[] = storageClient.upload_file(local_filename, 
"png"
, nvp);
             
            
System.out.println(fileIds.length); 
            
System.out.println(
"组名:" 
+ fileIds[
0
]); 
            
System.out.println(
"路径: " 
+ fileIds[
1
]);
 
        
catch 
(FileNotFoundException e) { 
            
e.printStackTrace(); 
        
catch 
(IOException e) { 
            
e.printStackTrace(); 
        
catch 
(MyException e) { 
            
e.printStackTrace(); 
        
    
}
 
    
@Test 
    
public 
void 
testDownload() {
        
try 
{
 
            
ClientGlobal.init(conf_filename);
 
            
TrackerClient tracker = 
new 
TrackerClient(); 
            
TrackerServer trackerServer = tracker.getConnection(); 
            
StorageServer storageServer = 
null
;
 
            
StorageClient storageClient = 
new 
StorageClient(trackerServer, storageServer); 
            
byte
[] b = storageClient.download_file(
"group1"
"M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf"
); 
            
System.out.println(b); 
            
IOUtils.write(b, 
new 
FileOutputStream(
"D:/"
+UUID.randomUUID().toString()+
".conf"
));
        
catch 
(Exception e) { 
            
e.printStackTrace(); 
        
    
}
     
    
@Test 
    
public 
void 
testGetFileInfo(){ 
        
try 
            
ClientGlobal.init(conf_filename);
 
            
TrackerClient tracker = 
new 
TrackerClient(); 
            
TrackerServer trackerServer = tracker.getConnection(); 
            
StorageServer storageServer = 
null
;
 
            
StorageClient storageClient = 
new 
StorageClient(trackerServer, storageServer); 
            
FileInfo fi = storageClient.get_file_info(
"group1"
"M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf"
); 
            
System.out.println(fi.getSourceIpAddr()); 
            
System.out.println(fi.getFileSize()); 
            
System.out.println(fi.getCreateTimestamp()); 
            
System.out.println(fi.getCrc32()); 
        
catch 
(Exception e) { 
            
e.printStackTrace(); 
        
    
     
    
@Test 
    
public 
void 
testGetFileMate(){ 
        
try 
            
ClientGlobal.init(conf_filename);
 
            
TrackerClient tracker = 
new 
TrackerClient(); 
            
TrackerServer trackerServer = tracker.getConnection(); 
            
StorageServer storageServer = 
null
;
 
            
StorageClient storageClient = 
new 
StorageClient(trackerServer, 
                    
storageServer); 
            
NameValuePair nvps [] = storageClient.get_metadata(
"group1"
"M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf"
); 
            
for
(NameValuePair nvp : nvps){ 
                
System.out.println(nvp.getName() + 
":" 
+ nvp.getValue()); 
            
        
catch 
(Exception e) { 
            
e.printStackTrace(); 
        
    
     
    
@Test 
    
public 
void 
testDelete(){ 
        
try 
            
ClientGlobal.init(conf_filename);
 
            
TrackerClient tracker = 
new 
TrackerClient(); 
            
TrackerServer trackerServer = tracker.getConnection(); 
            
StorageServer storageServer = 
null
;
 
            
StorageClient storageClient = 
new 
StorageClient(trackerServer, 
                    
storageServer); 
            
int 
i = storageClient.delete_file(
"group1"
"M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf"
); 
            
System.out.println( i==
0 
"删除成功" 
"删除失败:"
+i); 
        
catch 
(Exception e) { 
            
e.printStackTrace(); 
        
    
}
}

 

执行testUpload方法如下

 

 

注意:源码和maven仓库 下载地址:

 

转载于:https://www.cnblogs.com/beyondcj/p/7160250.html

你可能感兴趣的文章
linux支持的machine-types
查看>>
(原)使用intel的ipp库计算卷积及相关
查看>>
Activity的Task详解
查看>>
[搬运工系列]-JMeter(三)参数传递
查看>>
最长公共子序列(动态规划)
查看>>
android开发系列日志--(3)
查看>>
面试题
查看>>
[转] Java se 7新特性研究(二)
查看>>
修改电脑hosts文件
查看>>
#TS# get/set
查看>>
移动端开发模式
查看>>
红黑树原理、AVL树区别
查看>>
MySQL->索引的维护[20180504]
查看>>
第三章知识梳理
查看>>
在windows下安装dig工具
查看>>
django返回json格式的数据的方法
查看>>
Python使用struct处理二进制(pack和unpack用法)
查看>>
Enterprise Library6.0之缓存模块
查看>>
Red and Black
查看>>
ACM学习历程—HDU5667 Sequence(数论 && 矩阵乘法 && 快速幂)
查看>>