-
配置文件信息
fdfs_client.confconnect_timeout=10 network_timeout=30 charset=UTF-8 # tracker Http端口 http.tracker_http_port=8000 http.anti_steal_token=no #暂无作用 http.secret_key=FastDFS1234567890 #暂无作用 #tracker连接地址 tracker_server=192.168.47.203:22122 tracker_server=192.168.47.204:22122
-
maven配置
pom.xml<repositories> <repository> <id>yonyoucloud</id> <name>yonyoucloud repository</name> <url>http://maven.yonyoucloud.com/nexus/content/repositories/releases/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27-RELEASE</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency> </dependencies>
-
java操作代码
/** * @Author: silly * @Date: 2019/7/17 21:35 * @Version 1.0 * @Desc */ public class FastDFSClient { //获取配置文件地址 private static final String CONF_FILENAME = Thread.currentThread().getContextClassLoader().getResource("fdfs_client.conf").getPath(); private static StorageClient1 storageClient = null; //加载文件 static { try { ClientGlobal.init(CONF_FILENAME); TrackerClient trackerClient = new TrackerClient(ClientGlobal.g_tracker_group); TrackerServer trackerServer = trackerClient.getConnection(); if (trackerServer == null) { throw new RuntimeException("getConnection return null"); } StorageServer storageServer = trackerClient.getStoreStorage(trackerServer); if (storageServer == null) { throw new RuntimeException("getStoreStorage return null"); } storageClient = new StorageClient1(trackerServer, storageServer); } catch (Exception ex) { ex.printStackTrace(); } } /** * 上传文件 * * @param fileName 文件全路径 * @param extName 文件扩展名,不包含(.) * @param metas 文件扩展信息 * @return */ public static String uploadFile(String fileName, String extName, NameValuePair[] metas) { String result = null; try { result = storageClient.upload_file1(fileName, extName, metas); } catch (IOException e) { e.printStackTrace(); } catch (MyException e) { e.printStackTrace(); } return result; } /** * 上传文件 * * @param fileName 文件全路径 * @return null为失败 */ public static String uploadFile(String fileName) { return uploadFile(fileName, null, null); } /** * 上传文件 * * @param fileName 文件全路径 * @param extName 文件扩展名,不包含(.) * @return */ public static String uploadFile(String fileName, String extName) { return uploadFile(fileName, extName, null); } /** * 上传文件 * * @param fileContent 文件的内容,字节数组 * @param extName 文件扩展名,不包含(.) * @param metas 文件扩展信息 * @return */ public static String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) { String result = null; try { result = storageClient.upload_file1(fileContent, extName, metas); } catch (IOException e) { e.printStackTrace(); } catch (MyException e) { e.printStackTrace(); } return result; } /** * 下载文件 * * @param fileId 上传返回的路径 如:group1/M00/00/00/wKgvzl0vLa-AXC0CAAAMQJGVNH4551.png * @return */ public static InputStream download(String fileId) { try { byte[] bytes = storageClient.download_file1(fileId); InputStream inputStream = new ByteArrayInputStream(bytes); return inputStream; } catch (Exception ex) { return null; } } /** * @param fileId 上传返回的路径 如:group1/M00/00/00/wKgvzl0vLa-AXC0CAAAMQJGVNH4551.png * @return 0成功 -1 失败 * @throws IOException * @throws Exception */ public static Integer deleteFile(String fileId) { int result = -1; try { result = storageClient.delete_file1(fileId); } catch (IOException e) { e.printStackTrace(); } catch (MyException e) { e.printStackTrace(); } return result; } }
样例代码地址:https://github.com/tswine/sample/tree/master/fastdfs-sample/sample-fastdfs-client