91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么實現整合文件上傳到FastDFS

發布時間:2022-02-28 09:18:56 來源:億速云 閱讀:215 作者:小新 欄目:開發技術

這篇文章主要介紹Java怎么實現整合文件上傳到FastDFS,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    1.引入fastdfs依賴到pom.xml

            <dependency>
                <groupId>com.github.tobato</groupId>
                <artifactId>fastdfs-client</artifactId>
                <version>1.26.5</version>
            </dependency>

    2.上傳代碼如下

    上傳純文件流

        /**
         * 文件上傳
         * @param file MultipartFile類型
         * @return url
         */
        @Override
        public String fileUpload(MultipartFile file) throws Exception {
            try {
                return upload(file);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
        }

    上傳網絡資源鏈接:

        /**
         * 文件上傳
         * @param urlStr url地址
         * @return url
         */
        @Override
        public String fileUpload(String urlStr) throws Exception {
            try {
                //把地址轉換成URL對象
                URL url = new URL(urlStr);
                //創建http鏈接
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                //設置超時間為3秒
                conn.setConnectTimeout(3*1000);
                //防止屏蔽程序抓取而返回403錯誤
                conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)");
                //得到輸入流
                InputStream inputStream = conn.getInputStream();
                //截取鏈接中的文件名
                String fileName= urlStr.substring(urlStr.lastIndexOf("/")+1);
                MultipartFile multipartFile = new MockMultipartFile(fileName,fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
                //返回結果集
                return upload(multipartFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
     
        }

    整體代碼如下:

    package com.tfjybj.arpro.crawl.service.impl;
     
    import com.github.tobato.fastdfs.domain.fdfs.StorePath;
    import com.github.tobato.fastdfs.service.FastFileStorageClient;
    import com.tfjybj.arpro.crawl.service.FileUploadService;
    import com.tfjybj.arpro.crawl.util.CommonConfigurationUtil;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.http.entity.ContentType;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.mock.web.MockMultipartFile;
    import org.springframework.stereotype.Service;
    import org.springframework.web.multipart.MultipartFile;
     
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
     
    /**
     * 文件上傳業務類
     *
     * @author Promsing(張有博)
     * @version 1.0.0
     * @since 2022/2/25 - 20:01
     */
    @Service
    @Slf4j
    public class FileUploadServiceImpl implements FileUploadService {
     
        @Autowired
        private FastFileStorageClient fastFileStorageClient;
     
     
        // 獲取配置文件中的配置IP地址
        @Value("${fdfs.realIp}")
        private String realIp;
        // 獲取配置文件中的配置分組
        @Value("${fdfs.groupName}")
        private String group;
     
     
     
        /**
         * 文件上傳
         * @param file MultipartFile類型
         * @return url
         */
        @Override
        public String fileUpload(MultipartFile file) throws Exception {
            try {
                return upload(file);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
        }
     
        /**
         * 文件上傳
         * @param urlStr url地址
         * @return url
         */
        @Override
        public String fileUpload(String urlStr) throws Exception {
            try {
                //把地址轉換成URL對象
                URL url = new URL(urlStr);
                //創建http鏈接
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                //設置超時間為3秒
                conn.setConnectTimeout(3*1000);
                //防止屏蔽程序抓取而返回403錯誤
                conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)");
                //得到輸入流
                InputStream inputStream = conn.getInputStream();
                //截取鏈接中的文件名
                String fileName= urlStr.substring(urlStr.lastIndexOf("/")+1);
                MultipartFile multipartFile = new MockMultipartFile(fileName,fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
                //返回結果集
                return upload(multipartFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
     
        }
     
        /**
         * 文件上傳
         * @param file 需要上傳的文件
         * @return 上傳后的文件地址
         */
        public String upload(MultipartFile file) {
            try {
                // 1.文件信息校驗
                if (file.isEmpty()) {
                    log.debug("需要上傳的文件信息不通過");
                    return null;
                }
                // 2.保存圖片到fastDFS服務器
                //2.1 獲取文件后綴名
                String extension = StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
                //2.2 保存
                StorePath storePath = fastFileStorageClient.uploadFile(group, file.getInputStream(), file.getSize(), extension);
                // 獲取附件的完整地址
                String Path = CommonConfigurationUtil.HTTP + CommonConfigurationUtil.ECOLON + CommonConfigurationUtil.DOUBLE_SLASH + realIp + CommonConfigurationUtil.SINGLE_SLASH + storePath.getFullPath();
                log.info("文件上傳成功,文件地址:" + Path);
                return Path;
            } catch (Exception ex) {
                ex.printStackTrace();
                return null;
            }
        }
     
    }

    3.配置文件如下

    # 文件服務器基礎配置
    fdfs:
      groupName: ar
      so-timeout: 1500
      connect-timeout: 600
      tracker-list: d-fastdfs.xxxx.com:22122
      replace-ip:
        source: d-fastdfs.xxxx.com
        dest: d-fastdfs.xxxx.com
      realIp: d-fastdfs.xxxx.com

    4.上傳效果如下

    Java怎么實現整合文件上傳到FastDFS

    無論是純文件上傳還是以網絡資源鏈接的形式上傳都是文件流上傳的形式。

    以上是“Java怎么實現整合文件上傳到FastDFS”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    海伦市| 枣强县| 洪泽县| 崇州市| 永寿县| 鹰潭市| 元氏县| 新化县| 樟树市| 皮山县| 青冈县| 芷江| 舞钢市| 竹北市| 获嘉县| 广安市| 榆中县| 平果县| 舟曲县| 蓝山县| 闽清县| 乡城县| 岑巩县| 贵南县| 原平市| 南京市| 沭阳县| 侯马市| 纳雍县| 峡江县| 偏关县| 岗巴县| 封丘县| 景谷| 武穴市| 平阴县| 平顺县| 榆林市| 上高县| 凤冈县| 西吉县|