pom:
<dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.25</version> </dependency>
百度云链接:https://pan.baidu.com/s/1i3yaSbb0pY7n0FiZ71XePA 提取码:c68d
application.yml
fastdfs:
tracker_server: 192.168.100.105:22122
connect_timeout: 5
network_timeout: 30
charset: UTF-8
http:
secret_key: FastDFS1234567890
tracker_http_port: 8081
anti_steal:
check_token: no
代码1:
public final class FastDFSHelper { private static final Logger logger = LoggerFactory.getLogger(FastDFSHelper.class); private static TrackerClient trackerClient; static { try { ClientGlobal.init("fdfs_client.conf"); trackerClient = new TrackerClient(); } catch (IOException | MyException e) { logger.error("error", e); } } /** * 向FastDFS上传文件 * * @param localFilename 本地文件名 * @return 上传成功,返回组名和该文件在FastDFS中的名称;上传失败,返回null */ public static void uploadFile(String localFilename) { TrackerServer trackerServer; try { trackerServer = trackerClient.getConnection(); } catch (IOException e) { logger.error("error", e); return; } StorageClient storageClient = new StorageClient(trackerServer, null); try { String[] arr = storageClient.upload_file(localFilename, null, null); if (arr == null || arr.length != 2) { logger.error("向FastDFS上传文件失败"); } else { logger.info("向FastDFS上传文件成功"); } } catch (IOException | MyException e) { logger.error("error", e); } finally { closeTrackerServer(trackerServer); } } /** * 从FastDFS下载文件 * * @param localFilename 本地文件名 * @param groupName 文件在FastDFS中的组名 * @param remoteFilename 文件在FastDFS中的名称 */ public static void downloadFile(String localFilename, String groupName, String remoteFilename) { TrackerServer trackerServer; try { trackerServer = trackerClient.getConnection(); } catch (IOException e) { logger.error("error", e); return; } StorageClient storageClient = new StorageClient(trackerServer, null); File file = new File(localFilename); try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file))) { byte[] content = storageClient.download_file(groupName, remoteFilename); if (content == null || content.length == 0) { logger.error("文件大小为空!"); boolean flag = file.delete(); logger.info("删除文件结果:{}", flag); return; } bos.write(content); logger.info("成功下载文件: " + localFilename); } catch (IOException | MyException e) { logger.error("error", e); } finally { closeTrackerServer(trackerServer); } } /** * 从FastDFS删除文件 * * @param localFilename 本地文件名 * @param groupName 文件在FastDFS中的组名 * @param remoteFilename 文件在FastDFS中的名称 */ public static void deleteFile(String localFilename, String groupName, String remoteFilename) { TrackerServer trackerServer; try { trackerServer = trackerClient.getConnection(); } catch (IOException e) { logger.error("error", e); return; } StorageClient storageClient = new StorageClient(trackerServer, null); try { int i = storageClient.delete_file(groupName, remoteFilename); if (i == 0) { logger.info("FastDFS删除文件成功"); } else { logger.info("FastDFS删除文件失败"); } } catch (IOException | MyException e) { logger.error("error", e); } finally { closeTrackerServer(trackerServer); } } private static void closeTrackerServer(TrackerServer trackerServer) { try { if (trackerServer != null) { logger.info("关闭trackerServer连接"); trackerServer.close(); } } catch (IOException e) { logger.error("error", e); } } }