zoukankan      html  css  js  c++  java
  • Fastdfs 上传图片

    一、fastdfs-client的jar包导入

    1、下载地址:https://github.com/happyfish100/fastdfs-client-java

    2、将代码使用git下载下来之后,使用源码安装;

    mvn clean install

    3、安装成功后,在项目的pom.xml文件中使用如下坐标引入;

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

    二、配置fastdfs的配置文件

    1、在引入的jar包中查找配置文件,下图中的为例子(配置文件以.conf 或 .prpperties 结尾

     注:本帖子使用 .conf 作为配置文件;

    2、在 classpath 路径下创建 fdfs_client.conf 文件,并将上图中的 fdfs_client.conf.sample文件内容拷贝到该文件中,修改配置文件中的 tracker_server 为指定的fastdfs主机的IP;

    注1:tracker_server指向您自己IP地址和端口,1-n个
    注2:除了tracker_server,其它配置项都是可选的

     三、连接fastdfs分布式文件系统

    FastDfsUtils.java

    import org.apache.commons.io.FilenameUtils;import org.csource.common.NameValuePair;
    import org.csource.fastdfs.ClientGlobal;import org.csource.fastdfs.StorageClient1;
    import org.csource.fastdfs.StorageServer;
    import org.csource.fastdfs.TrackerClient;
    import org.csource.fastdfs.TrackerServer;
    import org.springframework.core.io.ClassPathResource;
    
    /**
     * 连接fastdfs, 上传图片
     * 返回上传的路径, 例如: group1/M00/00/00/wKisFFpBG9eAHaQvAAAWKd1hQR4158_big.jpg
     * @author pc
     *
     */
    public class FastDfsUtils
    {
        //上传图片
        public static String uploadPic(byte[] pic, String name, long size) throws Exception
        {
            //读取配置文件
            ClassPathResource resource = new ClassPathResource("fdfs_client.conf"); //从classpath路径下读取文件
            ClientGlobal.init(resource.getClassLoader().getResource("fdfs_client.conf").getPath());
            
            //连接tracker的客户端
            TrackerClient trackerClient = new TrackerClient();
            TrackerServer trackerServer = trackerClient.getConnection(); 
            
            //连接storage的客户端
            StorageServer storageServer = null;
            StorageClient1 storageClient1 = new StorageClient1(trackerServer, storageServer);
            
            //上传图片
            String ext = FilenameUtils.getExtension(name);  //获取扩展名
            NameValuePair[] metaArr = new NameValuePair[3]; //描述信息
            metaArr[0] = new NameValuePair("fileName", name);
            metaArr[1] = new NameValuePair("fileExt", ext);
            metaArr[2] = new NameValuePair("fileSize", String.valueOf(size));
            
            String path = storageClient1.upload_file1(pic, ext, metaArr); //返回存储的文件路径
            return path;
        }
    }

    注:StorageClient1 为升级版本的, upload_file1(byte[], String, NameValuePair[]) 为升级版的方法;

  • 相关阅读:
    Workbox使用策略
    前端性能指标计算方法
    make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误
    mac 支持rz sz
    v8引擎的优化
    pixi与lottie-web的benchmark测试
    alinode与官方node性能测试方法及分析
    2019年RTC大会记录
    后端数据推送-EventSource
    技术选型需要关注的软件开源协议
  • 原文地址:https://www.cnblogs.com/yufeng218/p/8215078.html
Copyright © 2011-2022 走看看