使用North自部署圖床服務

圖床

圖床可以把圖片轉為鏈接,從而方便我們書寫、分享博客,目前圖床主要分為以下幾類:

  • 利用 Git 倉庫存儲
  • 對象存儲(OSS、COS、七牛云等)
  • 免費公共圖床(SM.MS、聚合圖床、ImgTP、Postimage等)

但上述圖床都有些不盡人意

  • 公共圖床的穩定性未知,往往會開啟審查機制、限制上傳圖片的尺寸
  • Github 國內訪問速度堪憂,并且官方明令禁止將 GithubGitee 倉庫作為圖床
  • 對象存儲的容量和訪問速度還不錯,但流量較貴

圖床服務并不需要高性能的服務器去承載,現在云服務器的價格也并不昂貴,因此搭建個人圖床也許是不錯的選擇。github上的一個開源項目North 可以很方便的幫助我們自部署圖床服務.
開源地址:
North:一個易于搭建的圖床服務

Feature

  • 剪貼板圖片上傳、鏈接自動復制
  • 可視化圖片管理
  • 安全可靠,圖片完全存儲在主機
  • 無圖片尺寸、數量、帶寬限制(取決于環境)
  • 跨平臺,可在 windowsLinuxMacOS 部署
  • image-20221202212357589
    image-20221202212640017

安裝

Requirement
  • .NET Runtime (必需)
    • 在 Windows 上安裝
    • 在 Linux 上安裝 .NET
    • 在 macOS 上安裝 .NET
  • Nginx (可選)
本地搭建

版本: Windows 11 家庭中文版 (21H2)

  1. 前往 ImageBed主頁 下載資源包

    image-20220506144854125

  2. 解壓資源包 (圖片存儲路徑為 Data/Resources/Images)

    Z62J08FN

  3. 雙擊 ImageBed.exe 運行服務

    V6X4644N

  4. 瀏覽器地址欄輸入 localhost:12121

    8PD0X4VR

  5. 點擊上傳圖片

    RJ6V26VJ

    F4TNFTTD

  6. 安裝完成

服務器搭建

版本: Ubuntu 18.04.4 LTS(GNU/Linux 4.15.0-159-generic x86_64)

  1. 將資源包解壓后上傳至云服務器

    08HLTD88

  2. 進入 ImageBed 文件夾,運行 ImageBed.dll

    nohup dotnet ImageBed.dll &
    

    該命令會在后臺運行 ImageBed.dll,若要關閉 ImageBed 服務,需要先查詢 ImageBed 服務的 pid,之后用 kill 命令關閉

    # 查詢ImageBed服務pid
    ps -ef | grep dotnet# pid為4363
    ubuntu    4363  1636  0 19:32 pts/0    00:00:01 dotnet ImageBed.dll
    ubuntu   31389 30239  0 21:47 pts/2    00:00:00 grep --color=auto dotnet# 關閉ImageBed服務
    ubuntu@VM-0-16-ubuntu:~$ sudo kill 4363
    
  3. 瀏覽器地址欄輸入 {ip}:12121 即可訪問圖床服務,其中 {ip} 為云服務器公網 ip

  4. 安裝完成

Nginx 反向代理

反向代理概念、原理、功能請 移步,這里不再贅述。下面主要敘述如何在 Linux 上搭建 Nginx 反相代理

  1. 安裝 nginx

    sudo apt-get install nginx
    
  2. 打開 /etc/nginx/nginx.conf,修改相關設置

    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;
    }http {sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 20480;include /etc/nginx/mime.types;default_type application/octet-stream;ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLEssl_prefer_server_ciphers on;access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;gzip on;map $http_connection $connection_upgrade {"~*Upgrade" $http_connection;default keep-alive;}# ========================== 重點看這里========================server {listen 80;server_name xxx.xxx.xxx.xxx;				                    # 云服務器公網ip (或域名)     location / {client_max_body_size 100m;                          		# html報文尺寸限制proxy_pass http://127.0.0.1:12121;# Configuration for WebSocketsproxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;proxy_cache off;# WebSockets were implemented after http/1.0proxy_http_version 1.1;# Configuration for ServerSentEventsproxy_buffering off;# Configuration for LongPolling or if your KeepAliveInterval is longer than 60 secondsproxy_read_timeout 100s;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;
    }
    
  3. 檢查 nginx.conf 語法是否正確

    sudo nginx -t
    

    若格式正確則輸出

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  4. 關閉防火墻并重新加載 nginx

    sudo systemctl stop firewalld
    sudo systemctl start girewalld
    sudo firewall-cmd --reload
    sudo nginx -s reload
    

用法

上傳

web 界面上傳

web界面上傳

剪貼板上傳

剪貼板上傳

刪除

刪除圖片

導入導出

導入圖片

導入圖片

導出圖片

導出圖片

視圖切換

視圖切換

API

該圖床服務器包含三個API(上傳、下載、刪除),控制器為 Controllers/ImageController

上傳圖片

HTTP POST /api/image

Body 請求參數 Form-data

參數名類型必填說明
*[file]圖片文件

返回參數 JSON 最外層結構為: Object

參數名類型必含說明
statusCode[int]狀態碼
message[string]提示信息
res[array]圖片鏈接

下載圖片

HTTP GET /api/image/{imageName}

REST參數

參數名類型必填說明
imageName[string]圖片名稱

返回參數 Binary

圖片文件

刪除圖片

HTTP DELETE /api/image/{imageName}

REST參數

參數名類型必填說明
imageName[string]圖片名稱

返回參數 JSON 最外層結構為: Object

參數名類型必含說明
statusCode[int]狀態碼
message[string]提示信息
res[object]恒為null

Q & A

S1. 局域網用戶如何上傳圖片?

局域網內用戶在瀏覽器輸入 {ip}:12121 即可訪問圖床服務器,其中 {ip} 為服務器的 局域網IP

S2. 如何對接Picgo?

PicGo 是一款圖床管理軟件,支持多種圖床。使用 picgo 可大大簡化我們上傳圖片的流程,筆者在此開發了 picgo 插件 picgo-plugin-imagebed 以供大家使用

S3. 導入圖片壓縮包無響應?

請嘗試直接壓縮圖片,而不是包含圖片的文件夾

S4. 通知設置中的郵箱授權碼如何獲取?

請移步 這里

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35483.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35483.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35483.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

低應變復習題

1.比較臨塑荷載、臨界荷載和極限荷載的大小( ) A、臨塑荷載<臨界荷載<極限荷載 B、臨塑荷載>臨界荷載<極限荷載 C、臨塑荷載<臨界荷載>極限荷載 D、臨塑荷載>臨界荷載>極限荷載 參考答案:A 2.面關于低應變反射波法的描述,正確的是:( ) A、反射…

【雜記-淺談BGP邊界網關協議】

BGP邊界網關協議 一、BGP邊界網關協議概述二、BGP的特點及與IGP的區別三、BGP的路由屬性四、BGP協議中使用的報文 一、BGP邊界網關協議概述 1、BGP&#xff0c;Border Gateway Protocol&#xff0c;即邊界網關協議&#xff0c;是一種在自治系統&#xff08;AS&#xff09;之間…

Websocket實現方式二——注解方式

添加Websocket依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>根據ServerEndpoint注解注冊Websocket Configuration public class AgentWsConfig …

多項式回歸(Linear Regression)原理詳解及Python代碼示例

多項式回歸原理詳解 多項式回歸&#xff08;Polynomial Regression&#xff09;是線性回歸&#xff08;Linear Regression&#xff09;的一種擴展形式。它通過在輸入變量上添加高次項來擬合非線性關系。雖然多項式回歸本質上還是線性模型&#xff0c;但它允許模型在輸入特征的多…

if action和Switch之間該怎么選擇?

1. Switch 2. If及If Action Subsystem 3.結論 元素很多&#xff0c;用switch 元素少&#xff0c;用if或switch 如果...很多&#xff0c;用if

職業技能大賽引領下大數據專業實訓教學的改革研究

隨著信息化時代的加速發展&#xff0c;大數據專業作為新興的熱門領域&#xff0c;正日益成為高等職業教育體系中不可或缺的一部分&#xff0c;其承擔著為社會培養大批具有高素質應用技能的大數據技術人才的重任。職業技能大賽作為檢驗和提升學生技能水平的有效平臺&#xff0c;…

web學習筆記(六十九)vue2

1. vue2創建腳手架項目 &#xff08;1&#xff09;在cmd窗口輸入npm install -g vue/cli命令行&#xff0c;快速搭建腳手架。 &#xff08;2&#xff09; 創建vue2項目 &#xff08;3&#xff09; 選擇配置項目&#xff0c;最下面的選項是自己重新配置&#xff0c;第一次創建v…

使用mmdetection遇到的一些問題總結

【問題1】 No module named ‘mmcv._ext’ 應該安裝mmcv-full 而不是mmcv 【問題2】cannot import name ‘Config‘ from ‘mmcv‘ 原因是mmcv的版本太高兩種解決方案&#xff1a;1&#xff09;降低mmcv版本。2&#xff09;將 from mmcv import Config, DictAction 修改為 fro…

android 4大組件用法

在Android開發中&#xff0c;應用程序的主要組件包括Activity、Service、Broadcast Receiver和Content Provider。這些組件共同組成了Android應用的基本構架。以下是每個組件的詳細用法&#xff1a; 1. Activity Activity是Android應用的主要組成部分&#xff0c;代表一個用戶…

中電金信:向“新”而行—探索AI在保險領域的創新應用

大模型的應用已經滲透到各個領域&#xff0c;并展現出驚人的潛力。在自然語言處理方面&#xff0c;大模型用于機器翻譯、文本摘要、問答系統等&#xff1b;在計算機視覺領域&#xff0c;應用于圖像識別、目標檢測、視頻分析等&#xff1b;此外&#xff0c;大模型也應用于語音識…

使用nvm管理node版本及pnpm安裝

文章目錄 GithubWindows 環境Mac/Linux 使用腳本進行安裝或更新Mac/Linux 環境變量nvm 常用命令npm 常用命令npm 安裝 pnpmNode 歷史版本 Github https://github.com/nvm-sh/nvm Windows 環境 https://nvm.uihtm.com/nvm.html Mac/Linux 使用腳本進行安裝或更新 curl -o- …

名企架構師精講:Spring框架核心速覽

目錄 1. 課程概覽 2. 初識篇&#xff1a;Spring框架AOP&IOC案例詳解 課程內容3. 課程特色4.適用人群5. 你將收獲6. 學習建議 1. 課程概覽 本課程通過精選的兩篇深度文章和一套詳盡的視頻教程&#xff0c;全面而深入地解析并實踐了Spring框架的核心內容。 主要包含以下幾部…

VTable導出當前頁和導出所有頁數據

表格導出的是當前顯示的表格&#xff0c;如果是分頁表格想導出全部的數據話。有兩種方法可以實現 表格先顯示的全量數據&#xff0c;導出后再恢復當前頁。新建一個隱藏的表格實例顯示全量數據導出這個隱藏的表格實例。 下面是全量代碼&#xff1a; <template><div&…

快速創建條形熱力圖

Excel中的條件格式可以有效的凸顯數據特征&#xff0c;如下圖中B列所示。 現在需要使用圖表展現熱力條形圖&#xff0c;如下圖所示。由于顏色有多個過渡色&#xff0c;因此手工逐個設置數據條的顏色&#xff0c;基本上是不可能完成的任務&#xff0c;使用VBA代碼可以快速創建這…

git stash相關命令解釋

git stash 這個命令會保存你當前工作區和暫存區的所有更改到一個臨時的“stash”區域&#xff0c;然后使你的工作目錄和暫存區變得干凈&#xff08;即回到最近一次提交的狀態&#xff09;。 當你想要回到這個“stash”區域中的更改時&#xff0c;你可以使用 git stash list 來查…

SRE監控的四個黃金指標到底長啥樣?

一、監控的黃金信號 掌握系統運行狀態&#xff0c;了解組件、服務的可靠性和穩定性&#xff0c;需要借助監控系統收集指標、可視化數據&#xff0c;并在異常出現時進行操作提醒。那么監控的都要關注哪些呢&#xff1f;我們來了解一下監控的指標&#xff0c;即系統中衡量的最重…

【pytorch03】pytorch基本數據類型

問題&#xff1a;String類型在pytorch中如何表示&#xff1f; 很遺憾&#xff0c;pytorch不是完備的語言庫&#xff0c;而是面向數據計算的一個GPU加速庫&#xff0c;因此沒有內建對string的支持 我們會在做NLP的時候會遇到all string處理的問題&#xff0c;就比如說一句話&am…

華碩PRIME B450M-K主板開啟虛擬化

1.判斷電腦是否開啟了虛擬化 按下CtrlShiftESC打開任務管理器&#xff0c;切換到性能頁面&#xff0c;選擇查看CPU 如果在右下角看到虛擬化&#xff1a;已禁用&#xff0c;則沒有開啟虛擬化 2.進入BIOS 重啟或開機時&#xff0c;按下DEL或F2進入BIOS設置界面。 屏幕提示&am…

SAP系統中如何用事務碼圖形視圖尋找MD04增強開發實施點

在之前發布的文章中&#xff0c;介紹了善用事務碼的圖形視圖以觀察事務的執行流程以及如何在MD04中實施增強以改變生產訂單的顯示順序。本文結合兩者&#xff0c;介紹一下如何利用事務碼的圖形視圖找到增強開發的實施點。 在事務碼中輸入SE93&#xff0c;進入圖形視圖&#xf…

生命在于學習——Python人工智能原理(4.6)

在這里插一句話&#xff0c;我有兩個好兄弟的github項目&#xff0c;感興趣的可以去看一下&#xff0c;star一下&#xff0c;謝謝。 https://github.com/fliggyaa/fscanpoc https://github.com/R0A1NG/Botgate_bypass 四、Python的程序結構與函數 4.1 Python的分支結構 &…