亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node實(shí)現(xiàn)批量上傳本地圖片轉(zhuǎn)為圖片CDN的項(xiàng)目實(shí)踐

 更新時(shí)間:2023年07月14日 11:39:46   作者:窮小白  
本文主要介紹了node實(shí)現(xiàn)批量上傳本地圖片轉(zhuǎn)為圖片CDN的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近在做一個(gè)官網(wǎng),里面需要很多圖片,比較占用資源,打包體積有點(diǎn)大。所以想換成圖片CDN方式,之前寫過一個(gè)類似的,是需要后端同事提供接口,正好最近在看node,所以準(zhǔn)備用node實(shí)現(xiàn)一下。

什么是圖片CDN

與傳統(tǒng)的CDN不同,圖片CDN是CDN網(wǎng)絡(luò)的一種應(yīng)用,專門用于加速圖片的傳輸和加載,當(dāng)使用圖片CDN的時(shí)候,圖片被保存在CDN提供商的服務(wù)器上,并通過多個(gè)地理位置的邊緣節(jié)點(diǎn)提供服務(wù)。當(dāng)用戶請(qǐng)求訪問這些圖片時(shí),CDN會(huì)自動(dòng)將圖片傳送到距離用戶最近的邊緣節(jié)點(diǎn),從而實(shí)現(xiàn)快速加載和高可用性。

為什么用圖片CDN

1.可以提高網(wǎng)頁加載速度,因?yàn)閳D片被存儲(chǔ)在離用戶更近的服務(wù)器上,可以減少網(wǎng)絡(luò)延遲,加快傳輸速度,提高網(wǎng)頁加載速度。
2.節(jié)省帶寬消耗,CDN可以分擔(dān)原始服務(wù)器的流量壓力,通過緩存圖片并在需要時(shí)提供服務(wù),從而減少原始服務(wù)器的帶寬消耗。
3.減輕源服務(wù)器的負(fù)載,將圖片的從源服務(wù)器上轉(zhuǎn)移到CDN服務(wù)器上,減小了打包的體積,減輕了服務(wù)器的壓力。

實(shí)現(xiàn)過程

這次實(shí)現(xiàn)主要用的是express + cloudinary + node,主要借用了cloudinary,將圖片上傳到cloudinary,

將其中的cloud_name、api_key、api_secret換成自己就行,話不多說直接上代碼

const express = require('express');
const multer = require('multer');
const cloudinary = require('cloudinary').v2;
const app = express();
// 配置Multer中間件
const storage = multer.diskStorage({
? destination: (req, file, cb) => {
? ? cb(null, 'uploads/'); // 指定上傳文件保存的目錄
? },
? filename: (req, file, cb) => {
? ? cb(null, file.originalname); // 使用原始文件名保存上傳文件
? }
});
const upload = multer({ storage });
// 配置Cloudinary
cloudinary.config({?
? ? cloud_name: '*********',?
? ? api_key: '*********',?
? ? api_secret: '*********' ?
? });
// 處理文件上傳
app.post('/upload', upload.array('images', 10), (req, res) => {
? const files = req.files;
? const uploadPromises = [];
? // 遍歷所有上傳的文件
? for (let i = 0; i < files.length; i++) {
? ? const file = files[i];
? ? const uploadPromise = new Promise((resolve, reject) => {
? ? ? cloudinary.uploader.upload(file.path, (error, result) => {
? ? ? ? if (error) {
? ? ? ? ? reject(error);
? ? ? ? } else {
? ? ? ? ? resolve(result);
? ? ? ? }
? ? ? });
? ? });
? ? uploadPromises.push(uploadPromise);
? }
? // 等待所有文件上傳完成
? Promise.all(uploadPromises)
? ? .then(results => {
? ? ? res.json(results);
? ? })
? ? .catch(error => {
? ? ? res.status(500).json({ error: '上傳失敗' });
? ? });
});
// 啟動(dòng)應(yīng)用程序
app.listen(3000, () => {
? console.log('應(yīng)用程序已啟動(dòng)');
});

然后在本地啟動(dòng)node服務(wù)就行,通過postman調(diào)用本地接口,實(shí)現(xiàn)批量上傳

其中的url就是我所需要的,可以直接放在img標(biāo)簽中,替換本地路徑的圖片換成cdn形式圖片

結(jié)語

寫這個(gè)服務(wù)的最大目的是為了偷懶,同時(shí)也方便打包減小打包體積,有條件的大佬可以在寫一個(gè)上傳頁面,不用在通過postman調(diào)用

到此這篇關(guān)于node實(shí)現(xiàn)批量上傳本地圖片轉(zhuǎn)為圖片CDN的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)node 批量圖片CDN內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nodejs修復(fù)ipa處理過的png圖片

    nodejs修復(fù)ipa處理過的png圖片

    ipa本身是一個(gè)zip文件改后綴后解壓縮就能看到應(yīng)用內(nèi)使用的資源文件,其中png圖片資源xcode打包的時(shí)候做了些手腳下面我們來看看如何修復(fù)這些問題
    2016-02-02
  • Node.js Buffer模塊功能及常用方法實(shí)例分析

    Node.js Buffer模塊功能及常用方法實(shí)例分析

    這篇文章主要介紹了Node.js Buffer模塊功能及常用方法,結(jié)合實(shí)例形式分析了Buffer模塊的各種常用函數(shù)及相關(guān)使用技巧,需要的朋友可以參考下
    2019-01-01
  • Sequelize中用group by進(jìn)行分組聚合查詢

    Sequelize中用group by進(jìn)行分組聚合查詢

    大家都知道在SQL查詢中,分組查詢是較常用的一種查詢方式。分組查詢是指通過GROUP BY關(guān)鍵字,將查詢結(jié)果按照一個(gè)或多個(gè)字段進(jìn)行分組,分組時(shí)字段值相同的會(huì)被分為一組。在Node.js基于Sequelize的ORM框架中,同樣支持分組查詢,使用非常簡(jiǎn)單方便。下面來看看詳細(xì)的介紹。
    2016-12-12
  • 詳解基于node.js的腳手架工具開發(fā)經(jīng)歷

    詳解基于node.js的腳手架工具開發(fā)經(jīng)歷

    這篇文章主要介紹了詳解基于node.js的腳手架工具開發(fā)經(jīng)歷,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Puppet的一些技巧

    Puppet的一些技巧

    puppet這個(gè)工具真的很神奇,先不說商業(yè)版有哪些黑科技,單是開源版本就有很多可能讓你摸不著頭腦的地方,下面來列舉一下puppet是怎么查找puppet server的
    2018-09-09
  • node.js實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè)功能

    node.js實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè)功能

    這篇文章主要為大家詳細(xì)介紹了node.js實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Node.js(安裝,啟動(dòng),測(cè)試)

    Node.js(安裝,啟動(dòng),測(cè)試)

    這里主要介紹基于windows平臺(tái)上最簡(jiǎn)單方便的安裝方式,啟動(dòng)以及簡(jiǎn)單測(cè)試
    2014-06-06
  • 深入淺析Nodejs的Http模塊

    深入淺析Nodejs的Http模塊

    我們知道傳統(tǒng)的HTTP服務(wù)器是由Aphche、Nginx、IIS之類的軟件來搭建的,但是Nodejs并不需要,Nodejs提供了http模塊,自身就可以用來構(gòu)建服務(wù)器,下面通過本文給大家介紹Nodejs的Http模塊,需要的的朋友參考下吧
    2017-06-06
  • 解決npm?install版本不匹配問題:?npm?ERR!?code?ETARGET?npm?ERR!?notarget?No?matching?version?found?for

    解決npm?install版本不匹配問題:?npm?ERR!?code?ETARGET?npm?ERR!?

    這篇文章主要介紹了如何解決npm?install版本不匹配問題:?npm?ERR!?code?ETARGET?npm?ERR!?notarget?No?matching?version?found?for,文中給出了詳細(xì)的解決方法,需要的朋友可以參考下
    2024-02-02
  • 淺析node中間件及實(shí)現(xiàn)一個(gè)簡(jiǎn)單的node中間件

    淺析node中間件及實(shí)現(xiàn)一個(gè)簡(jiǎn)單的node中間件

    這篇文章主要介紹了淺析node中間件及實(shí)現(xiàn)一個(gè)簡(jiǎn)單的node中間件,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論