FastDFS(2)java客户端
来源:互联网 发布:jdbc insert多个数据 编辑:程序博客网 时间:2024/05/22 05:13
public class FastDFSOperation { private static boolean hasInited = false; private static void Init() { synchronized (TXFastDFSOperation.class) { if (hasInited) return; // 读取配置文件 try { File file = new File(Thread.currentThread().getContextClassLoader().getResource("fdfs_client.conf").toURI()); ClientGlobal.init(file.getAbsolutePath()); TXFastDFSOperation.hasInited = true; } catch (Exception e) { e.printStackTrace(); } } } private static StorageClient getStorageClient() throws IOException{ Init(); TrackerClient trackerClient = new TrackerClient(); TrackerServer trackerServer = trackerClient.getConnection(); ProtoCommon.activeTest(trackerServer.getSocket()); StorageClient storageClient = new StorageClient(trackerServer, null); return storageClient; } /** * 上传文件 * @param arg文件的输入流 * @param size文件的大小 * @param groupname文件要上传的group名称 * @param flexname文件的类型 * @return group / index */ public static String[] Uploadfile(InputStream arg, Long size,String groupname,String flexname) { String[] stringArray = null; NameValuePair[] nvp = null; byte[] fileBuffer = null; try{ fileBuffer = changeStreamToByteArray(arg); nvp = new NameValuePair[]{new NameValuePair("size", size.toString())}; stringArray = getStorageClient().upload_file(groupname, fileBuffer, flexname, nvp); }catch (Exception e) { e.printStackTrace(); } return stringArray; } /** * 成功失败返回值自己去查 * @param group * @param index * @return */ public static Integer deleteFile(String group, String index) { Integer returnValue = null; try{ returnValue = getStorageClient().delete_file(group, index); }catch (Exception e) { e.printStackTrace(); } return returnValue; } /** * 下载文件 * @param group文件所在group * @param index文件的index * @param offset带下载文件的偏移量 * @param downByte从偏移量往后需要下载的文件大小 * @return */ public static InputStream DownloadFile(String group, String index, Long offset, Long downByte) { InputStream inputStream = null; try { byte[] fileBuffer = getStorageClient().download_file(group, index, offset, downByte); inputStream = new ByteArrayInputStream(fileBuffer); } catch (IOException | MyException e) { e.printStackTrace(); } return inputStream; } /** * @param group * @param index * @param offset * @param downByte * @return */ public static byte[] DownloadFileReByte(String group, String index, Long offset, Long downByte) { byte[] fileBuffer = null; try { fileBuffer = getStorageClient().download_file(group, index, offset, downByte); } catch (IOException | MyException e) { e.printStackTrace(); } return fileBuffer; } /** * 获取文件大小 * @param group文件所在的group * @param index文件的index * @return */ public static Long GetFileSize(String group, String index) { FileInfo fileInfo = null; Long returnValue = new Long(-1); try { fileInfo = getStorageClient().get_file_info(group, index); } catch (Exception e) { e.printStackTrace(); } if(fileInfo != null) { returnValue = fileInfo.getFileSize(); } return returnValue; } /** * 将文件流转换成字节数组 * @param is * @return * @throws IOException */ private static byte[] changeStreamToByteArray(InputStream is) throws IOException { ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); byte[] buff = new byte[100]; int offset = 0; while((offset = is.read(buff, 0, 100)) > 0) { swapStream.write(buff, 0, offset); } byte[] fileBuffer = swapStream.toByteArray(); return fileBuffer; }}
阅读全文
0 0
- FastDFS(2)java客户端
- FastDFS Java客户端配置
- FastDFS之java客户端使用
- java客户端操作fastdfs集群
- FastDFS分布文件系统Java客户端使用
- FastDFS分布文件系统Java客户端使用
- FastDFS分布文件系统Java客户端使用
- fastdfs 图片服务器 使用java端作为客户端上传图片 / 【FastDFS专题】fastdfs使用实战(概念篇)
- FastDFS-Java客户端连接linux服务器出现连接超时
- 使用java客户端操作fastdfs进行文件上传删除
- fastdfs文件服务器-客户端实现
- FastDFS客户端协议
- FastDFS windows 客户端源码 (VS2005)
- FastDFS客户端(Python版)指南
- FastDFS Window客户端及源码
- Fastdfs客户端连接超时解决方案
- FastDFS实战(四)- Java集成FastDFS
- 品味FastDFS~第二回 FastDFS客户端的使用
- 洛谷 P2169 正则表达式
- Coursera 吴恩达 Deep Learning 第2课 Improving Deep Neural Networks 第一周 编程作业代码 Regularization
- Material Design基础
- windows 2008的Oracle client登录Oracle数据库缓慢问题分析
- Qt5 UDP网络通讯详解
- FastDFS(2)java客户端
- The C Programming Language 练习题2-3
- SQL优化的一些方法
- QT多线程详解
- sdut 2605 预处理A^N mod p
- Docker Hello World
- 重写和重载的区别
- Coursera 吴恩达 Deep Learning 第2课 Improving Deep Neural Networks 第一周 编程作业代码 Gradient Checking
- JQery总结