通用後臺管理系統(7)-編寫文件接口、實現

文件接口

package com.sundablog.service.backend.system.upms.filesystem;

import java.util.Map;

/**
 * 文件處理接口類(文件上傳 、文件下載等)
 * @ClassName:  FilesyStemService   
 * @Description:文件處理接口類(文件上傳 、文件下載等) 
 * @author: 噠噠 
 * @date:   2018年3月30日 上午12:11:17   
 *     
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
public interface FilesyStemService {

    
    /**
     * layui文件上傳組件上傳
     * @Title: fileUploadLayui   
     * @Description: layui文件上傳組件上傳
     * @param: @param filContent
     * @param: @return      
     * @return: Map<String,String>      
     * @throws
     */
    String fileUploadLayui(byte[] filContent); 
    
    
    
    /**
     * 獲取文件下載URL
     * @Title: getDownloadUrl   
     * @Description: 獲取文件下載URL  
     * @param: @param fileKey file 文件(全路徑或者fileKey)
     * @param: @return      
     * @return: String      
     * @throws
     */
    String getDownloadUrl(String fileKey);
}

文件接口實現

package com.sundablog.service.impl.backend.system.upms.filesystem;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import com.jeesuite.filesystem.FSProvider;
import com.jeesuite.filesystem.UploadObject;
import com.jeesuite.filesystem.provider.aliyun.AliyunossProvider;
import com.jeesuite.filesystem.provider.fdfs.FdfsProvider;
import com.jeesuite.filesystem.provider.qiniu.QiniuProvider;
import com.sundablog.service.backend.system.upms.filesystem.FilesyStemService;

import cn.hutool.core.util.RandomUtil;

/**
 * 文件處理接口實現類(文件上傳 、文件下載等)
 * 
 * @ClassName: FilesyStemServiceImpl
 * @Description:文件處理接口實現類(文件上傳 、文件下載等)
 * @author: 噠噠
 * @date: 2018年3月30日 上午12:12:05
 * 
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
@Service
public class FilesyStemServiceImpl implements FilesyStemService {

    @Value("${UPLOADING_QINIU_TYPE}")
    private int UPLOADING_QINIU_TYPE;

    /**
     *  qiniu配置
     */
    @Value("${QINIU_FILESYSTEM_PROVIDER}")
    private String QINIU_FILESYSTEM_PROVIDER;
    @Value("${QINIU_FILESYSTEM_BUCKETNAME}")
    private String QINIU_FILESYSTEM_BUCKETNAME;
    @Value("${QINIU_FILESYSTEM_URLPREFIX}")
    private String QINIU_FILESYSTEM_URLPREFIX;
    @Value("${QINIU_FILESYSTEM_ACCESSKEY}")
    private String QINIU_FILESYSTEM_ACCESSKEY;
    @Value("${QINIU_FILESYSTEM_SECRETKEY}")
    private String QINIU_FILESYSTEM_SECRETKEY;
    @Value("${QINIU_FILESYSTEM_PRIVATE}")
    private String QINIU_FILESYSTEM_PRIVATE;

    /**
     * FASTDFS
     */
    @Value("${FASTDFS_FILESYSTEM_PROVIDER}")
    private String FASTDFS_FILESYSTEM_PROVIDER;
    @Value("${FASTDFS_FILESYSTEM_SERVERS}")
    private String FASTDFS_FILESYSTEM_SERVERS;
    @Value("${FASTDFS_FILESYSTEM_URLPREFIX}")
    private String FASTDFS_FILESYSTEM_URLPREFIX;
    @Value("${FASTDFS_FILESYSTEM_CONNECTTIMEOUT}")
    private int FASTDFS_FILESYSTEM_CONNECTTIMEOUT;
    @Value("${FASTDFS_FILESYSTEM_MAXTHREADS}")
    private int FASTDFS_FILESYSTEM_MAXTHREADS;

    /**
     * aliyun
     */
    @Value("${ALIYUN_FILESYSTEM_PROVIDER}")
    private String ALIYUN_FILESYSTEM_PROVIDER;
    @Value("${ALIYUN_FILESYSTEM_BUCKETNAME}")
    private String ALIYUN_FILESYSTEM_BUCKETNAME;
    @Value("${ALIYUN_FILESYSTEM_ENDPOINT}")
    private String ALIYUN_FILESYSTEM_ENDPOINT;
    @Value("${ALIYUN_FILESYSTEM_ACCESSKEY}")
    private String ALIYUN_FILESYSTEM_ACCESSKEY;
    @Value("${ALIYUN_FILESYSTEM_SECRETKEY}")
    private String ALIYUN_FILESYSTEM_SECRETKEY;
    @Value("${ALIYUN_FILESYSTEM_URLPREFIX}")
    private String ALIYUN_FILESYSTEM_URLPREFIX;
    @Value("${ALIYUN_FILESYSTEM_PRIVATE}")
    private String ALIYUN_FILESYSTEM_PRIVATE;

    /**
     * layui文件上傳組件上傳 Title: fileUploadLayui Description:
     * 
     * @param filContent
     * @return
     * @see com.sundablog.service.backend.system.upms.filesystem.FilesyStemService#fileUploadLayui(byte[])
     */
    @Override
    public String fileUploadLayui(byte[] filContent) {
        String url; 
        if (UPLOADING_QINIU_TYPE == 0) {
            url = fdfsProvider(filContent);
        } else if (UPLOADING_QINIU_TYPE == 1) {
            url = aliyunossProvider(filContent);
        } else {
            url = qiniuProvider(filContent);
        }
        
        return url;
    }

    /**
     * 獲取文件下載URL Title: getDownloadUrl Description:
     * 
     * @param fileKey
     * @return
     * @see com.sundablog.service.backend.system.upms.filesystem.FilesyStemService#getDownloadUrl(java.lang.String)
     */
    @Override
    public String getDownloadUrl(String fileKey) {
        String url; 
        if (UPLOADING_QINIU_TYPE == 0) {
            url = getFdfsDownloadUrl(fileKey);
        } else if (UPLOADING_QINIU_TYPE == 1) {
            url = getAliyunossDownloadUrl(fileKey);
        } else {
            url = getQiniuDownloadUrl(fileKey);
        }
        return url;
    }

    /**
     * 7牛雲 oss 文件上傳
     * @Title: qiniuProvider   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param filContent
     * @param: @return      
     * @return: String      
     * @throws
     */
    private String qiniuProvider(byte[] filContent) {
        FSProvider provider = new QiniuProvider(QINIU_FILESYSTEM_URLPREFIX, QINIU_FILESYSTEM_BUCKETNAME,
                QINIU_FILESYSTEM_ACCESSKEY, QINIU_FILESYSTEM_SECRETKEY, true);
        String url = provider.upload(new UploadObject(RandomUtil.simpleUUID(), filContent));
        return url;
    }
    /**
     * 7牛雲 文件下載url
     * @Title: getQiniuDownloadUrl   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param fileKey
     * @param: @return      
     * @return: String      
     * @throws
     */
    public String getQiniuDownloadUrl(String fileKey) {
        FSProvider provider = new QiniuProvider(QINIU_FILESYSTEM_URLPREFIX, QINIU_FILESYSTEM_BUCKETNAME,
                QINIU_FILESYSTEM_ACCESSKEY, QINIU_FILESYSTEM_SECRETKEY, true);
        String url = provider.getDownloadUrl(fileKey);
        return url;
    }

    /**
     * 阿里雲oss文件上傳
     * @Title: aliyunossProvider   
     * @Description: 阿里雲oss文件上傳
     * @param: @param filContent
     * @param: @return      
     * @return: String      
     * @throws
     */
    private String aliyunossProvider(byte[] filContent) {
        FSProvider provider = new AliyunossProvider(ALIYUN_FILESYSTEM_URLPREFIX, ALIYUN_FILESYSTEM_ENDPOINT,
                ALIYUN_FILESYSTEM_BUCKETNAME, ALIYUN_FILESYSTEM_ACCESSKEY, ALIYUN_FILESYSTEM_SECRETKEY, true);
        String url = provider.upload(new UploadObject(RandomUtil.simpleUUID(), filContent));
        return url;
    }
    /**
     * 阿里雲oss文件下載url
     * @Title: getAliyunossDownloadUrl   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param fileKey
     * @param: @return      
     * @return: String      
     * @throws
     */
    public String getAliyunossDownloadUrl(String fileKey) {
        FSProvider provider = new AliyunossProvider(ALIYUN_FILESYSTEM_URLPREFIX, ALIYUN_FILESYSTEM_ENDPOINT,
                ALIYUN_FILESYSTEM_BUCKETNAME, ALIYUN_FILESYSTEM_ACCESSKEY, ALIYUN_FILESYSTEM_SECRETKEY, true);
        String url = provider.getDownloadUrl(fileKey);
        return url;
    }

    /**
     * fdfs文件上傳
     * @Title: fdfsProvider   
     * @Description: fdfs文件上傳
     * @param: @param filContent
     * @param: @return      
     * @return: String      
     * @throws
     */
    private String fdfsProvider(byte[] filContent) {
        FSProvider provider = new FdfsProvider(FASTDFS_FILESYSTEM_URLPREFIX, "group1",
                new String[] { FASTDFS_FILESYSTEM_SERVERS }, FASTDFS_FILESYSTEM_CONNECTTIMEOUT,
                FASTDFS_FILESYSTEM_MAXTHREADS);
        String url = provider.upload(new UploadObject(RandomUtil.simpleUUID(), filContent));
        return url;
    }
    /**
     * fdfs文件下載地址
     * @Title: getFdfsDownloadUrl   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param fileKey
     * @param: @return      
     * @return: String      
     * @throws
     */
    public String getFdfsDownloadUrl(String fileKey) {
        FSProvider provider = new FdfsProvider(FASTDFS_FILESYSTEM_URLPREFIX, "group1",
                new String[] { FASTDFS_FILESYSTEM_SERVERS }, FASTDFS_FILESYSTEM_CONNECTTIMEOUT,
                FASTDFS_FILESYSTEM_MAXTHREADS);
        String url = provider.getDownloadUrl(fileKey);
        return url;
    }

}

文件控制器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章