fastdfs java client_FastDFS Java客户端使用

importorg.apache.commons.io.FilenameUtils;importorg.apache.commons.io.IOUtils;importorg.apache.log4j.Logger;importorg.csource.common.NameValuePair;import org.csource.fastdfs.*;import java.io.*;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;/*** @Description FastDFS文件上传下载工具类*/

public final classFastDFSClient {private static final Logger logger = Logger.getLogger(FastDFSClient.class);/*直接放在类路径下, 不能在前面加入 / 符号(/fdfs_client.conf)*/

private static final String CONFIG_FILENAME = "fdfs_client.conf";private static StorageClient1 storageClient1 = null;static{try{//加载连接信息

ClientGlobal.init(CONFIG_FILENAME);//创建TrackerClient对象

TrackerClient trackerClient = newTrackerClient();//获取TrackerServer对象

TrackerServer trackerServer =trackerClient.getConnection();if (trackerServer == null) {throw new IllegalStateException("getConnection return null");

}//创建StorageServer对象

StorageServer storageServer =trackerClient.getStoreStorage(trackerServer);if (storageServer == null) {throw new IllegalStateException("getStoreStorage return null");

}//使用TrackerServer和StorageServer构造StorageClient对象

storageClient1 = newStorageClient1(trackerServer,storageServer);

}catch(Exception e) {

logger.error("创建storage client失败:" +e);

}

}privateFastDFSClient(){}/*** 上传文件

*@paramfile 文件对象

*@paramfileName 文件名

*@return

*/

public staticString uploadFile(File file, String fileName) {return uploadFile(file,fileName,null);

}/*** 上传文件

*@paramfile 文件对象

*@paramfileName 文件名

*@parammetaList 文件元数据

*@return

*/

public static String uploadFile(File file, String fileName, MapmetaList) {try{byte[] buff = IOUtils.toByteArray(newFileInputStream(file));

NameValuePair[] nameValuePairs= null;if (metaList != null) {

nameValuePairs= newNameValuePair[metaList.size()];int index = 0;for (Iterator> iterator =metaList.entrySet().iterator(); iterator.hasNext();) {

Map.Entry entry =iterator.next();

String name=entry.getKey();

String value=entry.getValue();

nameValuePairs[index++] = newNameValuePair(name,value);

}

}returnstorageClient1.upload_file1(buff, FilenameUtils.getExtension(fileName), nameValuePairs);

}catch(Exception e) {

logger.error("上传文件失败:" +e);

}return null;

}/*** 获取文件元数据

*@paramfileId 文件ID

*@return

*/

public static MapgetFileMetadata(String fileId) {try{

NameValuePair[] metaList=storageClient1.get_metadata1(fileId);if (metaList != null) {

HashMap map = new HashMap();for(NameValuePair metaItem : metaList) {

map.put(metaItem.getName(),metaItem.getValue());

}returnmap;

}

}catch(Exception e) {

logger.error("获取文件元数据失败:" +e);

}return null;

}/*** 删除文件

*@paramfileId 文件ID

*@return删除失败返回-1,否则返回0*/

public static intdeleteFile(String fileId) {try{returnstorageClient1.delete_file1(fileId);

}catch(Exception e) {

logger.error("删除文件失败:" +e);

}return -1;

}/*** 下载文件

*@paramfileId 文件ID(上传文件成功后返回的ID)

*@paramoutFile 文件下载保存位置

*@return

*/

public static intdownloadFile(String fileId, File outFile) {

FileOutputStream fos= null;

ByteArrayInputStream in= null;try{byte[] content =storageClient1.download_file1(fileId);

in= new ByteArrayInputStream(content, 1, content.length);

fos= newFileOutputStream(outFile);

IOUtils.copy(in,fos);return 0;

}catch(Exception e) {

logger.error("下载文件失败:" +e);

}finally{if (in != null) {try{

in.close();

}catch(IOException e) {

logger.error("下载文件完毕后, 关闭输入流失败" +e);

}

}if (fos != null) {try{

fos.close();

}catch(IOException e) {

logger.error("下载文件完毕后, 关闭输出流失败" +e);

}

}

}return -1;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值