日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Spring boot集成Go-FastDFS實(shí)現(xiàn)圖片上傳刪除等功能實(shí)現(xiàn)

瀏覽:24日期:2023-05-20 13:42:10

一.背景

工作中接觸到需要采集并管理大量圖片的需求,本來是用的FastDFS,但是發(fā)現(xiàn)實(shí)際情況是在項(xiàng)目實(shí)施時(shí)難以找到linux服務(wù)器去安裝FastDFS,所以經(jīng)過調(diào)研,選擇了可以在windows服務(wù)器上安裝部署的Go-FastDFS文件服務(wù)器

二.Go-FastDFS簡介

go-fastdfs是一個(gè)基于http協(xié)議的分布式文件系統(tǒng),它基于大道至簡的設(shè)計(jì)理念,一切從簡設(shè)計(jì),使得它的運(yùn)維及擴(kuò)展變得更加簡單,它具有高性能、高可靠、無中心、免維護(hù)等優(yōu)點(diǎn)。

三.安裝Go-FastDFS文件服務(wù)器

1)下載地址:https://github.com/sjqzhang/go-fastdfs/releases

2)下載完成直接啟動fileserver.exe

Spring boot集成Go-FastDFS實(shí)現(xiàn)圖片上傳刪除等功能實(shí)現(xiàn)

3)驗(yàn)證是否安裝成功,訪問localhost:8080

Spring boot集成Go-FastDFS實(shí)現(xiàn)圖片上傳刪除等功能實(shí)現(xiàn)

4)驗(yàn)證上傳功能,點(diǎn)擊選擇文件選擇好文件后,點(diǎn)擊上傳

Spring boot集成Go-FastDFS實(shí)現(xiàn)圖片上傳刪除等功能實(shí)現(xiàn)

5)在返回的url后加?download=0,查看圖片

Spring boot集成Go-FastDFS實(shí)現(xiàn)圖片上傳刪除等功能實(shí)現(xiàn)

四.實(shí)例實(shí)現(xiàn)功能

1)圖片上傳2)圖片刪除3)圖片訪問4)圖片水印添加

五.創(chuàng)建Spring boot項(xiàng)目,寫代碼實(shí)現(xiàn)功能

1)pom.xml添加依賴

<!--工具包--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool.version}</version> </dependency>

2)核心代碼,使用go-fastdhs上傳圖片并添加水印及刪除圖片工具類

@Componentpublic class GoFastdfsClientUtil { @Value('${camera.upload.path}') private String uploadPath; @Value('${camera.delete.path}') private String deletePath; private final Logger logger = LoggerFactory.getLogger(GoFastdfsClientUtil.class); /** * 圖片上傳 * * @param file * @param sixCode * @return * @throws IOException */ public UploadResult upload(MultipartFile file, String sixCode) throws IOException { UploadResult uploadResult = new UploadResult(); ByteArrayOutputStream bos = addWatermark(file, sixCode); byte[] b = bos.toByteArray(); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(b); InputStreamResource isr = new InputStreamResource(byteArrayInputStream, file.getOriginalFilename()); Map<String, Object> params = new HashMap<>(); params.put('file', isr); params.put('path', 'image'); params.put('output', 'json'); // 場景 params.put('scene', 'image'); String resp = HttpUtil.post(uploadPath, params); Console.log('resp: {}', resp); JSONObject exJson = JSONObject.parseObject(resp); uploadResult = JSON.toJavaObject(exJson, UploadResult.class); return uploadResult; } /** * 圖片刪除 * * @param fileUrl */ public void deleteImage(String md5) { if (StringUtils.isEmpty(md5)) { return; } try { Map<String, Object> params = new HashMap<>(); params.put('md5', md5); HttpUtil.post(deletePath, params); } catch (Exception e) { logger.warn(e.getMessage()); } } /** * 加水印 * * @param myfile * @param sixCode * @return * @throws IOException */ private ByteArrayOutputStream addWatermark(MultipartFile myfile, String sixCode) throws IOException { InputStream in = myfile.getInputStream(); BufferedInputStream bis = new BufferedInputStream(in); BufferedImage image = ImageIO.read(bis); int height = image.getHeight(); int width = image.getWidth(); // 加水印 Graphics2D g = image.createGraphics(); g.drawImage(image, 0, 0, width, height, null); g.setColor(new Color(128, 128, 128)); // 字體 int num = 0; if (width > height) { num = height / 30; } else { num = width / 30; } g.setFont(new Font('微軟雅黑', Font.PLAIN, num)); SimpleDateFormat formatter = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss'); String date = formatter.format(new Date()); String watermarkContent = '拍攝時(shí)間:' + date + '&攝像頭編碼:' + sixCode; // 設(shè)置水印坐標(biāo) String[] split = watermarkContent.split('&'); int x = 10; int y = height - 10; for (int i = 0; i < split.length; i++) { g.drawString(split[i], x, y -= g.getFontMetrics().getHeight()); } g.dispose(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ImageIO.write(image, 'jpg', bos); return bos; }}

解釋:這里我們事先在配置文件中配置好了文件的上傳路徑以及刪除路徑,配置如下:

camera: upload: path: http://localhost:8080/group1/upload delete: path: http://localhost:8080/group1/delete visit: path: http://localhost:8080

3)上面的方法中我們將圖片上傳后的返回值轉(zhuǎn)換為結(jié)果集對象,對象定義如下:

public class UploadResult implements Serializable{/** * */private static final long serialVersionUID = 5534287808864118463L;private String url;private String md5;private String path;private String domain;private String scene;private BigInteger size;private BigInteger mtime;private String scenes;private String retmsg;private int retcode;private String src;......get,set方法.....}

4)在實(shí)際應(yīng)用中編寫控制層方法調(diào)用核心工具類的上傳,刪除方法即可

總結(jié):本次總結(jié)主要描述了spring boot集成go-fastdfs上傳圖片的核心方法,沒有具體的測試展示,其實(shí)go-fastdfs的使用很簡單,接口編寫也很簡單

到此這篇關(guān)于Spring boot集成Go-FastDFS實(shí)現(xiàn)圖片上傳刪除等功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Spring boot集成Go-FastDFS圖片上傳刪除內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久字幕精品一区| 日韩**一区毛片| 国产精品一国产精品k频道56| 日韩中文字幕av电影| 在线国产一区| 欧美专区在线| 亚洲精品欧美| 国产精品一二| 日韩福利一区| 999国产精品999久久久久久| 麻豆视频在线看| 久久青草久久| 久久精品亚洲人成影院| 青青久久av| 亚洲专区一区| 18国产精品| 久久精品国产免费| 91精品一区国产高清在线gif | 欧美+日本+国产+在线a∨观看| 国产一区二区三区自拍| 欧美中文日韩| 美女视频黄免费的久久| 亚洲天堂黄色| 日本免费在线视频不卡一不卡二| 欧美激情三区| 精品日韩视频| 欧美日韩少妇| 久久亚洲国产精品尤物| 韩日一区二区三区| 久久黄色影视| 欧美日韩精品一本二本三本| 日韩中文av| 亚洲一级少妇| 国产探花在线精品| 亚洲欧洲另类| 精品国产一区二区三区2021| 在线亚洲一区| 日韩欧美网址| 国产精品v日韩精品v欧美精品网站| 免费福利视频一区二区三区| 日本成人在线不卡视频| 免费久久久久久久久| 欧美成a人片免费观看久久五月天| 免费毛片在线不卡| 国产在线观看www| 国产日韩一区| 日本视频在线一区| 日韩中文字幕亚洲一区二区va在线| 国产高潮在线| 国产一区二区三区网| 日本少妇精品亚洲第一区| 美女91精品| 首页亚洲欧美制服丝腿| 亚洲国产不卡| 成人日韩在线观看| 久久尤物视频| 久久精品女人| 国产一区二区三区久久| 国产一区一一区高清不卡| 精品高清久久| 国产一区二区亚洲| 国际精品欧美精品| 久久久久久久久久久妇女| 日韩一区亚洲二区| 久久国产中文字幕| 欧美美女一区| 久久av一区| 欧美日韩网址| 国产成人调教视频在线观看| 久久av国产紧身裤| 蜜桃久久久久| 国产99在线| 日本久久成人网| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品美女| 日精品一区二区三区| 亚洲精品一级二级三级| 国产精区一区二区| 国产精品成久久久久| 极品av在线| 亚洲精品中文字幕乱码| 美女91精品| 久久精品97| 精品三级在线| 婷婷激情一区| 男人天堂欧美日韩| 午夜亚洲福利| 欧美激情麻豆| 免费观看不卡av| 欧美日韩黄网站| 四虎4545www国产精品| 亚洲精品一级二级三级| 国产精品麻豆久久| 日韩亚洲国产欧美| 久久久国产精品入口麻豆| 伊人成人网在线看| 精品国产中文字幕第一页| 亚洲视频www| 欧美激情aⅴ一区二区三区| 亚洲天堂一区二区| 欧美亚洲tv| 日韩中文字幕1| 99精品视频在线观看免费播放| 免费国产亚洲视频| 国产一区二区三区四区大秀| 亚洲综合专区| 国产一区二区三区不卡av| 久久国产福利| 香蕉人人精品| 黄毛片在线观看| 久久精品欧洲| 国产精品一区二区av日韩在线| 亚洲专区欧美专区| 日韩在线短视频| 欧美伊人影院| 欧美日韩在线观看视频小说| 国产一区二区久久久久| 久久国产婷婷国产香蕉| 免费久久久久久久久| 91精品综合| 色在线中文字幕| 久久91视频| 福利在线一区| 欧美国产另类| 久久久久久免费视频| 麻豆精品视频在线观看视频| 狠狠久久伊人| 亚洲色图综合| 国产乱人伦丫前精品视频| 日韩国产精品久久久| 天堂中文在线播放| 日韩欧乱色一区二区三区在线| 国产91在线播放精品| 国产高清一区二区| 欧美日韩国产在线一区| 亚洲精品韩国| 国产精品成人一区二区不卡| 99久精品视频在线观看视频| 国产亚洲高清视频| 日本三级亚洲精品| www在线观看黄色| 免费不卡在线视频| 国产福利亚洲| 亚洲二区免费| 日韩精品第二页| 久久av日韩| 日本欧洲一区二区| 久久久男人天堂| 欧美日韩亚洲一区在线观看| 久久激情婷婷| 蜜臀av在线播放一区二区三区| 亚洲精品综合| 欧美亚洲国产精品久久| 麻豆精品99| 日韩精品一区二区三区中文字幕| 免费不卡中文字幕在线| 成人在线视频免费看| 日本欧美久久久久免费播放网| 欧美手机在线| 欧美国产偷国产精品三区| 男女男精品视频网| 樱桃成人精品视频在线播放| 成人在线免费观看网站| 日韩一区二区三区精品| 欧美女激情福利| 欧美日韩亚洲在线观看| 电影亚洲精品噜噜在线观看| 国产一区二区三区不卡av| 国产精品久久久久久久久久久久久久久| 亚洲一二av| 在线精品亚洲| 国产欧美啪啪| 国产一区二区三区探花| 偷拍精品精品一区二区三区| 人人精品亚洲| 国产精品99久久久久久董美香| 日本在线啊啊| 日韩精品欧美激情一区二区| 一区二区视频欧美| 国产亚洲一区二区三区啪| 精品九九在线| 99xxxx成人网| 国产亚洲电影| 97国产精品| 国户精品久久久久久久久久久不卡| 亚洲三级欧美| 欧美日韩国产高清电影| 日本不卡视频在线观看 | 亚洲a级精品| 日本不卡的三区四区五区| 国产精品对白久久久久粗| 色欧美自拍视频| 欧美手机在线| 亚洲精品伦理| 日韩免费视频| 亚洲精品va| 国产精品成人一区二区网站软件| 欧美久久天堂| 日本综合视频| 国产精品专区免费|