zoukankan      html  css  js  c++  java
  • fastdfs5.x Java客户端简单例子

    下载源码, 使用maven编译并安装

    https://github.com/happyfish100/fastdfs-client-java.git

    新建maven工程,引入fastdfs-client-java

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.xiaojf</groupId>
    <artifactId>fastdfs-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
    <dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client-java</artifactId>
    <version>1.27-SNAPSHOT</version>
    </dependency>
    </dependencies>

    </project>

    属性文件  fastdfs-client.properties

    ## 客户端连接超时时间
    fastdfs.connect_timeout_in_seconds = 5
    ## 客户端网络超时时间
    fastdfs.network_timeout_in_seconds = 30
    ## 编码格式
    fastdfs.charset = UTF-8

    fastdfs.http_anti_steal_token = false
    fastdfs.http_secret_key = FastDFS1234567890
    ## fastdfs tracker server 的http 端口号
    fastdfs.http_tracker_http_port = 80
    ## fastdfs tracker server的地址
    fastdfs.tracker_servers = 192.168.1.19:22122

    上传 

    package cn.xiaojf.fastdfs;
    
    import org.csource.common.MyException;
    import org.csource.common.NameValuePair;
    import org.csource.fastdfs.*;
    
    import java.io.File;
    import java.io.IOException;
    
    /**
     * 上传
     * @author xiaojf 2017/6/28 15:59
     */
    public class UploadDemo {
        private static StorageClient1 client = null;
        static {
            try {
                ClientGlobal.initByProperties("fastdfs-client.properties");
                TrackerClient trackerClient = new TrackerClient();
                TrackerServer trackerServer = trackerClient.getConnection();
    
                if (trackerServer == null) {
                    throw new RuntimeException("获取Tracker server 发生异常");
                }
    
                StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
                client = new StorageClient1(trackerServer,storageServer);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (MyException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 上传
         * @param file 文件
         * @author xiaojf 2017/6/28 16:37
         */
        public static String upload(File file) throws IOException, MyException {
            //指定额外的存储信息
            NameValuePair[] nameValuePairs = new NameValuePair[1];
            nameValuePairs[0] = new NameValuePair("filename",file.getName());
            //上传文件
            if (client == null) {
                throw new RuntimeException("fastdfs 客户端未初始化");
            }
            return client.upload_file1(file.getAbsolutePath(), "exe", nameValuePairs);
        }
    
        public static void main(String[] args) throws IOException, MyException {
            File file = new File("c:/windows/system32/notepad.exe");
            System.out.println(upload(file));
        }
    }

    下载

    package cn.xiaojf.fastdfs;
    
    import org.csource.common.MyException;
    import org.csource.common.NameValuePair;
    import org.csource.fastdfs.*;
    
    import java.io.IOException;
    
    /**
     * 下载
     * @author xiaojf 2017/6/28 15:59
     */
    public class DownloadDemo {
        private static StorageClient1 client = null;
        static {
            try {
                ClientGlobal.initByProperties("fastdfs-client.properties");
                TrackerClient trackerClient = new TrackerClient();
                TrackerServer trackerServer = trackerClient.getConnection();
    
                if (trackerServer == null) {
                    throw new RuntimeException("获取Tracker server 发生异常");
                }
    
                StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);
                client = new StorageClient1(trackerServer,storageServer);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (MyException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 下载
         * @param token fastdfs 上传后返回的字符串
         * @author xiaojf 2017/6/28 16:37
         */
        public static byte[] download(String token) throws IOException, MyException {
            //获取上传时候,写入的文件信息
            NameValuePair[] metadata1 = client.get_metadata1(token);
            for (NameValuePair nameValuePair : metadata1) {
                System.out.println(nameValuePair.getName() + " -> " + nameValuePair.getValue());
            }
    
            if (client == null) {
                throw new RuntimeException("fastdfs 客户端未初始化");
            }
    
            //下载,返回文件字节数组
            return client.download_file1(token);
        }
    
        public static void main(String[] args) throws IOException, MyException {
            System.out.println(DownloadDemo.download("group1/M00/00/00/wKgBE1lTagmAXsRVAAL0ADCuSWA576.exe").length);
        }
    }
  • 相关阅读:
    Visual Studio 2010使用Visual Assist X的方法
    SQL Server 2000 评估版 升级到 SQL Server 2000 零售版
    双网卡多网络单主机同时访问
    开发即过程!立此纪念一个IT新名词的诞生
    delphi dxBarManager1 目录遍历 转为RzCheckTree2树
    5320 软件集合
    delphi tree 从一个表复制到另一个表
    DELPHI 排课系统课表
    长沙金思维 出现在GOOGLE的 金思维 相关搜索里啦!!
    如何在DBGrid的每一行前加一个单选框?
  • 原文地址:https://www.cnblogs.com/xiaojf/p/7090551.html
Copyright © 2011-2022 走看看