小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

docker 搭建fastdfs 并實現(xiàn)上傳下載

 印度阿三17 2020-03-01

 0.先下載鏡像

 

1.安裝跟蹤器 跟蹤器默認端口為22122

docker run  -d --name trakcer -v /fastdfs/tracker_data:/fastdfs/tracker/data --net=host season/fastdfs tracker

  2.安裝存儲器 192.168.160.128 是你的主機ip

docker run -d --name storage -v /fastdfs/storage_data:/fastdfs/storage/data -v /fastdfs/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER:192.168.160.128:22122 season/fastdfs storage

  3.查看是否啟動成功

   docker ps

4.修改存儲器中對應(yīng)的跟蹤器的ip 地址

 docker exec -it storage bash

 根據(jù)上述命令可以看到,配置文件的位置:

你可以在容器中修改, 也可以復(fù)制出來,然后改完之后復(fù)制進去,我用的是復(fù)制的形式

  在宿主機上執(zhí)行:

docker cp storage:/fdfs_conf/storage.conf /fastdfs/storage.conf 

  

  然后再把該配置文件復(fù)制回去

docker cp /fastdfs/storage.conf storage:/fdfs_conf/storage.conf 

  重啟存儲器

docker restart storage

 5.java中進行測試

 在pom 中添加依賴

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.41</version>
        </dependency>

配置文件

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

添加service

@Service
public class FastDFSClientService {
    @Autowired
    private FastFileStorageClient fileStorageClient;

    /**
     * 上傳文件
     *
     * @param file 文件對象
     * @return 文件訪問地址
     * @throws IOException
     */
    public String uploadFile(MultipartFile file) throws IOException {
        StorePath storePath = fileStorageClient.uploadFile(file.getInputStream(),  file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()), null);
        return storePath.getFullPath();
    }

    /**
     * 下載文件
     *
     * @param fileUrl
     * @return
     */
    public byte[] download(String fileUrl) {
        String group = fileUrl.substring(0, fileUrl.indexOf("/"));
        String path = fileUrl.substring(fileUrl.indexOf("/")   1);
        return fileStorageClient.downloadFile(group, path, new DownloadByteArray());
    }

 }

 controller

@RestController
@RequestMapping("/fdfs")
public class FastDFSController {
    @Autowired
    private FastDFSClientService dfsClientService;

    /**
     * 文件上傳
     *
     * @param file
     * @return
     */
    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public JsonResult upload(MultipartFile file) throws IOException {
        String url = dfsClientService.uploadFile(file);
        return JsonResult.success(url);
    }

    @RequestMapping("/download")
    public void download(String fileUrl, HttpServletResponse response) throws IOException {
        byte[] data = dfsClientService.download(fileUrl);
        String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") 1);
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-type", "application/octet-stream");
        response.setHeader("Content-Disposition", "attachment;filename="   URLEncoder.encode(fileName, "UTF-8"));
        response.setContentType("application/octet-stream");
        ServletOutputStream outputStream = response.getOutputStream();
        IOUtils.write(data, outputStream);
    }

}
  JsonResult 是工具類,返回前端的統(tǒng)一格式而已,可以自行封裝

     至此,docker搭建的fastdfs就可以實現(xiàn)上傳下載了!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多