<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:56179|
      • 收錄網站:177785|

      IT精英團

      圖床失效了?也許你應該試試這個工具

      圖床失效了?也許你應該試試這個工具

      瀏覽次數:
      評論次數:
      編輯: mb5fcdf3fd1fd25
      信息來源: 51CTO博客
      更新日期: 2020-12-11 15:14:40
      摘要

      前言經過幾個小伙伴的提醒,發現個人博客中的許多圖片都裂了無法訪問;原因就不多說,既然出現問題就得要解決。原本我的處理方式非常簡單粗暴:找到原有的圖片重新下載下來上傳到新的可用圖床再把圖片地址替換。這樣搞了一兩篇之后我就絕望了。。。之前為了代碼能在公眾號里也有好的閱讀體驗,所以能截圖的我絕不貼代碼,導致一篇文章多的得有十幾張圖片。好在哪位大佬說過“以人肉XX為恥”,這種重復勞動力完全可自動化;于是便

      • 正文開始
      • 相關閱讀
      • 推薦作品

      圖床失效了?也許你應該試試這個工具

      前言
      經過幾個小伙伴的提醒,發現個人博客中的許多圖片都裂了無法訪問;原因就不多說,既然出現問題就得要解決。

      圖床失效了?也許你應該試試這個工具

      圖床失效了?也許你應該試試這個工具

      原本我的處理方式非常簡單粗暴:找到原有的圖片重新下載下來上傳到新的可用圖床再把圖片地址替換。

      這樣搞了一兩篇之后我就絕望了。。。

      之前為了代碼能在公眾號里也有好的閱讀體驗,所以能截圖的我絕不貼代碼,導致一篇文章多的得有十幾張圖片。

      好在哪位大佬說過“以人肉XX為恥”,這種重復勞動力完全可自動化;于是便有了本次的這個工具。

      它可以一行命令把你所有 Markdown 寫的內容中的圖片全部替換為新的圖床。

      運行效果如下:

      圖床失效了?也許你應該試試這個工具

      圖床失效了?也許你應該試試這個工具

      使用
      可以直接在這個地址下載 jar 包運行:https://github.com/crossoverJie/blog.toolbox/releases/download/v0.0.1/blog.toolbox-0.0.1-SNAPSHOT.jar

      當然也可以下載源碼編譯運行:

      git clone https
      :
      //github.com/crossoverJie/blog.toolbox
      
      mvn clean 
      package
      
      java 
      -
      jar nows
      -
      0.0
      .
      1
      -
      SNAPSHOT
      .
      jar 
      --
      app
      .
      downLoad
      .
      path
      =
      /xx/
      img 
      /
      xx
      /
      xx
      /
      path 
      100

      看運行方式也知道,其實就是用 SpringBoot 寫了一個工具用于批量下載文中出現的圖片同時上傳后完成替換。

      • 其中 app.downLoad.path 是用于將下載的圖片保存到本地磁盤的目錄。

      • /xx/xx/path 則是掃描 .md 文件的目錄,會遞歸掃描所有出所有文件。

      • 100 則是需要替換文件的數量,默認是按照文件修改時間排序。

      如果自己的圖片較多的話還是有幾個坑需要注意下。

      線程數量
      默認是啟動了兩個線程去遍歷文件、上傳下載圖片、更新文本等內容,其中的網絡 IO 其實挺耗時的,所以其實可以適當的多開些線程來提高任務的執行效率。

      但線程過多也許會觸發圖床的保護機制,同時也和自己電腦配置有關,這個得結合實際情況考慮了。

      所以可以通過 --app.thread=6 這樣的參數來調整線程數量。

      圖床限制
      這個是圖片過多一定是大概率出現的,上傳請求的頻次過高很容易被限流封 IP。

      {
      "code"
      :
      "error"
      ,
      "msg"
      :
      "Upload file count limit. Time left 1027 second."
      }

      目前來看是封 IP 居多,所以可以通過走代理、換網絡的方式來解決。

      當然如果是自搭圖床可以無視。

      重試
      由于我使用的是免費圖床,上傳過程中偶爾也會出現上傳失敗的情況,因此默認是有 5 次重試機制的;如果五次都失敗了那么大概率是 IP 被封了。

      即便是 ip 被封后只要換了新的 ip 重新執行程序它會自動過濾掉已經替換的圖片,不會再做無用功,這點可以放心。

      圖片保存
      圖床失效了?也許你應該試試這個工具

      默認情況下,下載的圖片會保存在本地,我也建議借此機會自己本地都緩存一份,同時名字還和文中的名字一樣,避免今后圖床徹底掛掉后連恢復的機會都沒有。

      總結
      這個程序的代碼就沒怎么講了,確實也挺簡單,感興趣的可以自己下來看看。

      目前功能也很單一,自用完全夠了;看后續大家是否還有其他需求再逐漸完善吧,比如:

      • 圖床上傳失敗自動切換到可用圖床。

      • 整體處理效率提升。

      • 任務執行過程中更好的進度展現等。

      再次貼一下源碼地址:

      https://github.com/crossoverJie/blog.toolbox

      ps:閱讀原文訪問博客圖片已經全部替換完畢。

      你的點贊與分享是對我最大的支持

      標簽:Java
      沒那么簡單的線程池
      ? 上一篇 2020-12-11
      『并發包入坑指北』之阻塞隊列
      下一篇 ? 2020-12-11
      • 談如何設計未來的倉庫建筑
        4閱讀 0條評論 個贊
        編輯:數據社全文共3758個字,建議10分鐘閱讀大家好,我是峰哥,夏天已經來了,小麥馬上要豐收了,今天分析一篇關于未來數倉架構發展方向的文章。Linked大佬JayKreps曾發表過一篇博客,簡單闡……
      • 高并發服務的幾點優化經驗
        0閱讀 0條評論 個贊
        前言:如何優化高并發服務,這里指的是qps在20萬以上的在線服務,注意不是離線服務,在線服務會存在哪些挑戰呢?①無法做離線緩存,所有的數據都是實時讀的②大量的請求會打到線上服務,對于服務的響應時間要……
      • Java處理異常的9個最佳實踐 你做得對嗎?
        1閱讀 0條評論 個贊
        原文:https://dzone.com/articles/9-best-practices-to-handle-exceptions-in-java譯者:颯然Hang譯文:http://www.r……
      • 提高Java字符串編碼和解碼性能的技巧
        1閱讀 0條評論 個贊
        1常見字符串編碼●常見的字符串編碼有:LATIN1只能保存ASCII字符,又稱ISO-8859-1。UTF-8變長字節編碼,一個字符需要使用1個、2個或者3個byte表示。由于中文通常需要3個字節……
      • Linux預定任務調度(crontab) 好實用!
        0閱讀 0條評論 個贊
        概述crontab命令用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行??梢允褂胏rontab定時處理離線任務,比如每天凌晨2點更新數……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • 誤操作離線丟棄和恢復場景測試的業務影響——來自“血”的教訓
        0閱讀 0條評論 個贊
        在數據庫恢復過程中,比如我們用了第三方的備份工具,在實施恢復操作時會導出需要的某個表空間這樣可以大大減少恢復時間,是十分值得推薦的做法,這個過程中由于修改控制文件中數據文件的相關信息,需要執行alte……
      • MySQL支持哈希索引嗎?(收藏)
        1閱讀 0條評論 個贊
        經常有朋友問,MySQL的InnoDB到底支不支持哈希索引?對于InnoDB的哈希索引,確切的應該這么說:(1)InnoDB用戶無法手動創建哈希索引,這一層上說,InnoDB確實不支持哈希索引;(2)……
      • Linux的10個最危險的命令
        0閱讀 0條評論 個贊
        rm-rf命令該命令可能導致不可恢復的系統崩壞。>rm-rf/#強制刪除根目錄下所有東西。>rm-rf*#強制刪除當前目錄的所有文件。>rm-rf.#強制刪除當前文件夾及其子文件夾。執行rm-r……
      • 操作系統宕機 如何找回我的MySQL記錄?
        0閱讀 0條評論 個贊
        以下文章來源于公眾號-數據和云,作者楊豹一、概述如果Linux操作系統宕機,啟動不了,救援模式(rescueinstalledsystem)也行不通的時候,那么該機器上的MySQL數據還能恢復嗎?……
      • Python的八個實用“無代碼”特性
        1閱讀 0條評論 個贊
        注:在命令行中使用Python時,“-m”選項參數可以實現非常強大的功能??梢哉f,善用“-m”參數,這是一個優秀的Python技術人的必備技能。曾發過一篇文章《Python中-m的典型用……
      • 高并發服務的幾點優化經驗
        0閱讀 0條評論 個贊
        前言:如何優化高并發服務,這里指的是qps在20萬以上的在線服務,注意不是離線服務,在線服務會存在哪些挑戰呢?①無法做離線緩存,所有的數據都是實時讀的②大量的請求會打到線上服務,對于服務的響應時間要……
      • 不容錯過的20個ES6技巧
        5閱讀 0條評論 個贊
        前言大家好,我是xieyezi,好久不見,我又重新回歸掘金啦,這次為大家整理了20個使用頻率很高的ES6代碼塊,希望大家喜歡……
      • PostgreSQL并行框架分析
        3閱讀 0條評論 個贊
        作者簡介施博文,目前就職于騰訊云PG團隊概覽PostgreSQL并行框架提供了一系列方便的函數,支持在插件或內核中直接調用相關函數,啟動若干個后臺進程進行并行操作。目前,PG的并行框架主要用來……
      • Java“年度加密漏洞”修復 網友:更多堅持Java 8的理由
        9閱讀 0條評論 個贊
        文|Travis出品|OSC開源社區(ID:oschina2013)甲骨文于昨日推送了安全更新修復了一個漏洞,該漏洞允許攻擊者偽造某些種類的SSL證書和握手、雙因素認證信息,以及由一系列廣……
      • 一天一技能:協調與多流程的完美結合
        7閱讀 0條評論 個贊
        我們知道,協程本質上是單線程單進程,通過充分利用IO等待時間來實現高并發。在IO等待時間之外的代碼,還是串行運行的。因此,如果協程非常多,多少每個協程內部的串行代碼運行時間超過了IO請求的等待時間,那……
      • epoll這個Linux高性能服務的本質真的不簡單
        1閱讀 0條評論 個贊
        設想一個場景:有100萬用戶同時與一個進程保持著TCP連接,而每一時刻只有幾十個或幾百個TCP連接是活躍的(接收TCP包),也就是說在每一時刻進程只需要處理這100萬連接中的一小部分連接。那么,如何才……
      • 3種方式!轉到錯誤處理最佳實踐
        1閱讀 0條評論 個贊
        以下文章來源于公眾號-云加社區,作者李森林導語|錯誤處理一直以一是編程必需要面對的問題,錯誤處理如果做的好的話,代碼的穩定性會很好。不同的語言有不同的出現處理的方式。Go語言也一樣,在本篇文章中,我們……
      • SQL優化通用公式:5個步驟和10個案例
        1閱讀 0條評論 個贊
        導讀:在應用開發的早期,數據量少,開發人員開發功能時更重視功能上的實現,隨著生產數據的增長,很多SQL語句開始暴露出性能問題,對生產的影響也越來越大,有時可能這些有問題的SQL就是整個系統性能的瓶頸?!?/div>
      • 采訪者:告訴我們SpringAOP的底層代理模型
        2閱讀 0條評論 個贊
        來源|Java技術指北(ID:javanorth)代理模式相信大家經常聽說,在設計模式中相對而言是比較難理解的。這次指北君來給大家通俗的介紹介紹。1、什么是代理模式Provideasurrog……
      • Linux中的交互式進程查看命令htop
        1閱讀 0條評論 個贊
        htop界面展示HtopLinux進程監控工具“Htop是一個用于Linux/類Unix系統的交互式實時進程監控應用程序,也是top命的替代品,它是所有Linux操作系統上預裝的默……
      • Python極簡編碼規范
        1閱讀 0條評論 個贊
        本文是閱讀《PythonCodingRule》之后總結的最為精華及簡單的編碼規范,根據每個人不同喜好有些地方會有不同的選擇,我只是做了對自己來說最簡單易行的選擇,僅供大家參考。1、重要原則a.保持……
      • MySQL 5.7 和 8.0 幾處細節上的差異
        9閱讀 0條評論 個贊
        MySQL8.0相對于MySQL5.7,有很多新特性,比如:快速加列、原子DDL、不可見索引、額外端口、角色管理等。這一節內容,就不講這些新特性了,只來聊聊最近在工作學習過程中遇到的幾處細節……
      • 納尼?數據也是立法的嗎?
        1閱讀 0條評論 個贊
        編輯:彭文華來源:大數據架構師(ID:bigdata_arch)彭友們好,我是老彭。最近忙瘋了,天天給客戶寫方案,都沒時間寫文章了。趁著五一假期,跟彭友們嘮嘮新鮮事兒。今天這個,真的是顛覆我的認知,……
      • JD.COM面試問題:ElasticSearch深度分頁解決方案
        0閱讀 0條評論 個贊
        以下文章來源于月伴飛魚,作者日常加油站前言Elasticsearch是一個實時的分布式搜索與分析引擎,在使用過程中,有一些典型的使用場景,比如分頁、遍歷等。在使用關系型數據庫中,我們被告知要注意甚至……
      • 如何優雅地升級Kubernetes集群的Docker和Containerd版本
        1閱讀 0條評論 個贊
        前言公司用的k8s集群是“多環境合一”的方式,集群流量入口也摒棄了常見的traefik和ingress-nginx,直接用了一個國內不常見的底層基于Envoy的APIGateway網關服務。當然還有……
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>