邓羽平
骑士
骑士
  • UID280
  • 粉丝1
  • 关注2
  • 发帖数5
阅读:5239回复:0

FastDFS-JavaClient(一)

楼主#
更多 发布于:2019-06-30 19:56



1.   介绍


FastDFS javaClient是针对FastDFS所开发的javaAPI,使用java代码操作FastDFS

2.   API使用说明



2.1    常用API详细说明



2.1.1     getErrorCode()


方法说明:get the error code of last call
获取上次调用的错误代码
参数:无
返回值:上次调用的错误代码
返回值类型:byte
NOTE:。。。。该方法不管如何都返回的是0,待研究。。。

2.1.2    文件上传



2.1.2.1 upload_file(String local_filename,
String file_ext_name, NameValuePair[] meta_list)



a)       方法说明:
upload file to storage server (by file name)
上传文件到存储服务器(按文件名)
b)       参数:
String
local_filename
: local filename to upload(要上传的本地文件名)
String
file_ext_name
: file ext name, do not include dot(.),
null to extract ext name from the local filename(文件扩展名称,不包含.符号。若为空则从本地文件名local_filename中提取文件扩展名)
NameValuePair[]
meta_list
: meta info array(元信息数组)
 
c)        返回值
若成功,返回一个字符串数组。第一个元素为 the group name to store the file(上传文件存储的group名称);第二个元素为文件存储后新的文件名称。
若失败,返回null
d)       返回值类型
String[]
e)       使用案例
StorageClient sc = new StorageClient();
 
String ret[] = sc.upload_file("F:\\TMP\\logo.png",null,new NameValuePair[0]);

f)        返回值:
group1
M00/00/05/rBKCH1zsmmaANNa4AAANYcciMSs886.png


2.1.2.2 upload_file(byte[] file_buff,
int offset, int length, String file_ext_name, NameValuePair[] meta_list)



a)       方法说明
upload file to storage server (by file buff)
上传文件到存储服务器(按文件的字节)
b)       参数
byte[] file_buff : 文件byte数组
int offset : 指定开始的byte
int length : 指定需要上传的byte数量
String file_ext_name : file ext name, do not
include dot(.),(文件扩展名称,不包含.符号。若为null,则文件没有后缀扩展名。)
NameValuePair[] meta_list : meta info array(元信息数组)
c)        返回值
若成功,返回一个字符串数组。第一个元素为 the group name to store the file(上传文件存储的group名称);第二个元素为文件存储后新的文件名称。
若失败,返回null
d)       返回值类型
String[]
e)       使用案例
byte[] bytes = file2Byte("F:\\TMP\\SDMD.sql"); String ret[] = sc.upload_file(bytes,0,1024,null,new NameValuePair[0]);

f)        返回值
group1
M00/00/05/rBKCIVzsoGeAeysbAAAEAMgH1M06402860

 

2.1.2.3 upload_file(String
group_name, byte[] file_buff, int offset, int length, String file_ext_name,
NameValuePair[] meta_list)



方法说明:upload file to storage server (by file buff)
上传文件到存储服务器(按文件的字节以及group_name)
参数:
String group_name : group名称
byte[] file_buff : 文件byte数组
int offset : 指定开始的byte
int length : 指定需要上传的byte数量
String file_ext_name : file ext name, do
not include dot(.),(文件扩展名称,不包含.符号。若为null,则文件没有后缀扩展名。)
NameValuePair[] meta_list : meta info array(元信息数组)
返回值:若成功,返回一个字符串数组。第一个元素为 the group name to store the file(上传文件存储的group名称);第二个元素为文件存储后新的文件名称。
若失败,返回null
返回值类型:String[]
使用案例:
byte[] bytes = file2Byte("F:\\TMP\\SDMD.sql"); String ret[] = sc.upload_file("group1",bytes,0,1024,null,new NameValuePair[0]);

返回值:
group1
M00/00/05/rBKCH1zsohiAS1k3AAAEAMgH1M00025682

 

2.1.2.4 upload_file(byte[] file_buff,
String file_ext_name, NameValuePair[] meta_list)



方法说明:upload file to storage server (by file buff)
上传文件到存储服务器(按文件的字节)
参数:
byte[] file_buff : 文件byte数组
String file_ext_name : file ext name, do
not include dot(.),(文件扩展名称,不包含.符号。若为null,则文件没有后缀扩展名。)
NameValuePair[] meta_list : meta info array(元信息数组)
返回值:若成功,返回一个字符串数组。第一个元素为 the group name to store the file(上传文件存储的group名称);第二个元素为文件存储后新的文件名称。
若失败,返回null
返回值类型:String[]
使用案例:
byte[] bytes = file2Byte("F:\\TMP\\SDMD.sql"); String ret[] = sc.upload_file("group1",bytes,null,new NameValuePair[0]);

返回值:
group1
M00/00/05/rBKCIFzso0CAOfxgAAMigHYHoOk7744982

 

2.1.2.5 upload_file(String
group_name, byte[] file_buff, String file_ext_name, NameValuePair[] meta_list)



3.2.5类似,只是参数多了一个group_name,故在此不重复说明
 

2.1.2.6 upload_file(String
group_name, long file_size, UploadCallback callback, String file_ext_name,
NameValuePair[] meta_list)



方法说明:upload file to storage server (by callback)
上传文件到存储服务器(通过回调函数)
参数:
String group_name : group名称
Long file_size : 上传后的文件大小
UploadCallback : 回调对象
String file_ext_name : file ext name, do
not include dot(.),(文件扩展名称,不包含.符号。若为null,则文件没有后缀扩展名。)
NameValuePair[] meta_list : meta info array(元信息数组)
返回值:若成功,返回一个字符串数组。第一个元素为 the group name to store the file(上传文件存储的group名称);第二个元素为文件存储后新的文件名称。
若失败,返回null
返回值类型:String[]
使用案例:
StorageClient sc = new StorageClient();

byte
[] bytes = file2Byte("F:\\TMP\\SDMD.sql"); String ret[] = sc.upload_file("group1",bytes.length,new CallBackClass(bytes),null,new NameValuePair[0]);

其中CallBackClass类:



import org.csource.fastdfs.UploadCallback;

import
java.io.IOException;

import
java.io.OutputStream;



public class
CallBackClass implements UploadCallback {

    
public byte[] fileBytes;

    public
CallBackClass(){ }

    
public CallBackClass(byte[] b){

        
this.fileBytes = b;

    
}

    
@Override

    
public int send(OutputStream outputStream) throws IOException {

        System.
out.println("进入文件上传回调函数。。。");

        
System.out.println("开始写数据。。。");

        
outputStream.write(this.fileBytes);

        
System.out.println("完成写数据。。。");

        return
0;

    
}

}


 
CallBackClass类说明:使用这个上传文件方法,需自定义一个java类,实现org.csource.fastdfs.UploadCallback这个接口的send方法,在send方法中往outputStream中写入数据。
返回值:
进入文件上传回调函数。。。
开始写数据。。。
完成写数据。。。
group1
M00/00/05/rBKCIVzsqBqANbIWAAMigHYHoOk6668012

最新喜欢:

李松鹤李松鹤
游客

返回顶部