溫馨提示×

溫馨提示×

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

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

springboot集成fastdfs的方法

發(fā)布時間:2021-06-25 09:39:29 來源:億速云 閱讀:469 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“springboot集成fastdfs的方法”,在日常操作中,相信很多人在springboot集成fastdfs的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”springboot集成fastdfs的方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1 引入jar

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

說明: 

springboot的版本為2.0以上時候,使用1.26.1-RELEASE版本

2 引入配置:

@Configuration
@Import(FdfsClientConfig.class)
// 解決jmx重復(fù)注冊bean的問題
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class FastClientImporter {
}

3 yml 配置:

fdfs:
  so-timeout: 1501
  connect-timeout: 601
  thumb-image: # 縮略圖
    width: 60
    height: 60
  tracker-list: # tracker地址
    
    10.96.165.173:22122

4使用:

@Service
public class PictureServiceImpl implements  PictureService {
    @Autowired
    private FastFileStorageClient fastFileStorageClient;
 
    @Value("${IMAGE_SERVER_URL}")
    private String IMAGE_SERVER_URL;
    @Override
    public String uploadPicture(MultipartFile file){
        //截取后綴
        try {
            String originalFilename = file.getOriginalFilename();
            System.out.println(originalFilename);
            String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
            System.out.println(extName);
            StorePath storePath = fastFileStorageClient.uploadFile(file.getInputStream(), file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()), null);
            System.out.println(storePath);
            String fileUrl = IMAGE_SERVER_URL + storePath.getFullPath();
            return fileUrl;
        } catch (IOException e) {
            e.printStackTrace();
            return  null;
        }
    }
}

docker 搭建 fastdfs server

前提: 安裝docker   

yum install -y docker-io

1 拉取鏡像:

docker pull qbanxiaoli/fastdfs

2 docker 啟動

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168.127.131 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs qbanxiaoli/fastdfs

3 檢驗:

docker exec -it fastdfs /bin/bash

echo "Hello FastDFS!">index.html

fdfs_test /etc/fdfs/client.conf upload index.html

常見錯誤: 

  返回錯誤碼28,表示磁盤空間不足。注意FastDFS中有預(yù)留空間的概念,在tracker.conf中設(shè)置,配置項為:reserved_storage_space,缺省值為4GB,即預(yù)留4GB的空間。

解決: 

  請酌情設(shè)置reserved_storage_space這個參數(shù),比如可以設(shè)置為磁盤總空間的20%左右。

到此,關(guān)于“springboot集成fastdfs的方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI