node實現批量上傳本地圖片轉為圖片CDN的項目實踐

    目錄 前言 什么是圖片CDN 為什么用圖片CDN 實現過程 結語 前言 最近在做一個官網,里面需要很多圖片,比較占用資源,打包體積有點大。所以想換成圖片CDN方式,之前寫過一個類似的
    目錄
    • 前言
    • 什么是圖片CDN
    • 為什么用圖片CDN
    • 實現過程
    • 結語

    前言

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

    什么是圖片CDN

    與傳統的CDN不同,圖片CDN是CDN網絡的一種應用,專門用于加速圖片的傳輸和加載,當使用圖片CDN的時候,圖片被保存在CDN提供商的服務器上,并通過多個地理位置的邊緣節點提供服務。當用戶請求訪問這些圖片時,CDN會自動將圖片傳送到距離用戶最近的邊緣節點,從而實現快速加載和高可用性。

    為什么用圖片CDN

    1.可以提高網頁加載速度,因為圖片被存儲在離用戶更近的服務器上,可以減少網絡延遲,加快傳輸速度,提高網頁加載速度。
    2.節省帶寬消耗,CDN可以分擔原始服務器的流量壓力,通過緩存圖片并在需要時提供服務,從而減少原始服務器的帶寬消耗。
    3.減輕源服務器的負載,將圖片的從源服務器上轉移到CDN服務器上,減小了打包的體積,減輕了服務器的壓力。

    實現過程

    這次實現主要用的是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: '上傳失敗' });
    ? ? });
    });
    // 啟動應用程序
    app.listen(3000, () => {
    ? console.log('應用程序已啟動');
    });

    然后在本地啟動node服務就行,通過postman調用本地接口,實現批量上傳

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

    結語

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

    到此這篇關于node實現批量上傳本地圖片轉為圖片CDN的項目實踐的文章就介紹到這了,更多相關node 批量圖片CDN內容請搜索技圈網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持技圈網!

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 精品国产一区二区三区www| 精品福利一区二区三| 久久国产精品最新一区| 亚洲色无码专区一区| 亚洲日韩激情无码一区| 能在线观看的一区二区三区| 色欲精品国产一区二区三区AV| 一区二区免费在线观看| 国产综合视频在线观看一区| 国产香蕉一区二区精品视频| 色欲AV蜜臀一区二区三区 | 国产精品香蕉一区二区三区| 国精产品一区一区三区免费视频| 日韩A无码AV一区二区三区| 午夜性色一区二区三区不卡视频| 亚洲性无码一区二区三区| 精品无码人妻一区二区三区品| 国产丝袜视频一区二区三区 | 国模吧一区二区三区精品视频| 少妇人妻精品一区二区三区| 国精无码欧精品亚洲一区| 中文字幕在线观看一区二区| 精品乱子伦一区二区三区高清免费播放| 在线电影一区二区三区| 国产亚洲综合精品一区二区三区 | 国产成人高清视频一区二区| 国产一区高清视频| 一区二区三区在线播放| 一区二区三区亚洲视频| 天堂Aⅴ无码一区二区三区| 亚洲一区二区三区在线观看精品中文| 国产精品 视频一区 二区三区| 动漫精品专区一区二区三区不卡| 亚洲AV永久无码精品一区二区国产| 福利片福利一区二区三区| 亚洲制服中文字幕第一区| 麻豆精品久久久一区二区| 蜜桃无码AV一区二区| 无码视频一区二区三区| 一区二区精品视频| 亚洲AV本道一区二区三区四区|