FastDFS

Posted menxn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastDFS相关的知识,希望对你有一定的参考价值。

FastDFS java 上传下载

  • 配置文件
    dfs.properties

      ## fastdfs-client
    
      fastdfs.connect_timeout_in_seconds=5
    
      fastdfs.network_timeout_in_seconds=30
    
      fastdfs.charset=UTF-8
    
      fastdfs.http_anti_steal_token=true
    
      fastdfs.http_secret_key=FastDFS1234567890
    
      fastdfs.http_tracker_http_port=80
    
      fastdfs.tracker_servers=file.ljzsg.com:22122

    http_secret_key 对应 /etc/fdfs/http.conf 的http.anti_steal.secret_key

  • POM

      <dependency>
              <groupId>net.oschina.zcx7878</groupId>
              <artifactId>fastdfs-client-java</artifactId>
              <version>1.27.0.0</version>
       </dependency>
  • 上传

      @Test
      public void upload() {
          try {
              // 初始化全局配置。加载一个配置文件。
              ClientGlobal.initByProperties("dfs.properties");
              // 创建一个TrackerClient对象。
              TrackerClient trackerClient = new TrackerClient();
              // 创建一个TrackerServer对象。
              TrackerServer trackerServer = trackerClient.getConnection();
              // 声明一个StorageServer对象,null。
              StorageServer storageServer = null;
              // 获得StorageClient对象。
              StorageClient storageClient = new StorageClient(trackerServer, storageServer);
              // 直接调用StorageClient对象方法上传文件即可。
              String[] strings;
              strings = storageClient.upload_file("D:\test.jpg", "jpg", null);
              for (String string : strings) {
    
                  System.out.println(string);
              //group1/
              //M00/00/00/wKgCx1wHQ-aAYvtmAACxjYqFSkc019.jpg
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  • 下载

      @Test
      public void download(){
          try {
              // 初始化全局配置。加载一个配置文件
              ClientGlobal.initByProperties("dfs.properties");
              // 创建一个TrackerClient对象
              TrackerClient tracker = new TrackerClient();
              // 创建一个TrackerServer对象。
              TrackerServer trackerServer = tracker.getConnection();
              // 声明一个StorageServer对象,
              StorageServer storageServer = null;
              // 获得StorageClient对象
              StorageClient storageClient = new StorageClient(trackerServer, storageServer);
              byte[] b = storageClient.download_file("group1", "M00/00/00/wKgCx1wHQ-aAYvtmAACxjYqFSkc019.jpg");
              System.out.println(b);
              // 将下载的文件流保存
              IOUtils.write(b, new FileOutputStream("D:/"+UUID.randomUUID().toString()+".jpg"));
          } catch (Exception e) {
              e.printStackTrace();
          }
      }

以上是关于FastDFS的主要内容,如果未能解决你的问题,请参考以下文章

分布式文件服务器FastDFS之“文件上传后(JAVA),前(AngularJS)端代码"

Java实现FastDFS文件上传下载和删除

Java实现FastDFS文件上传下载和删除

FastDFS - 文件服务器学习资料

关于 go-fastdfs-web 的SpringBoot 后台管理

django中使用FastDFS分布式文件系统接口代码实现文件上传下载更新删除