HackMD 圖片大搬遷,9 百萬張圖片備份大解密!

May 19, 2023ByAnn
#zh

HackMD 圖片大搬遷,9 百萬張 Imgur 圖片備份大解密!

相信 HackMD 使用者這幾天應該都有收到我們寄出的轉移完成通知吧?

日前 Imgur 官方宣佈,於 2023 年 5 月 15 日起採用更新版本的服務條款,其中與 HackMD 最為相關的部分為「Imgur 非註冊用戶上傳的低流量圖片、未被他人使用的舊圖也將陸續遭到刪除」,這項政策可能會連帶影響上傳 Imgur 圖像的 HackMD 免費用戶。

HackMD 一直以來都相當重視用戶隱私及使用權益,所以開發團隊決定在最短的時間內將所有使用者上傳至 Imgur 的圖片全數轉移至 HackMD 的雲端空間,確保每位用戶的權益不會因為 Imgur 的更動而影響到原本的筆記內容。

簡而言之,5/15 以後、如果 Imgur 開始大量刪除圖片,HackMD 付費用戶的筆記不會受到任何影響,仍會正常顯示圖片。

Imgur 釋出消息後,同時我們也收到來自四面八方的訊息,社群平台上的討論尤其熱烈,礙於先前人力及時間有限無法一一回應大家的提問,現在就由小編和技術長 Max 與大家分享我們的處理流程吧!

目標:「0 影響」!

「Imgur之亂」似乎完全沒有影響到你的筆記,正是因為我們在 2 週內將所有使用者的圖片全部都轉移完成啦!

  • 小編 : HackMD 是如何在短時間內處理完這麼大量的筆記內容呢?

  • Max : HackMD 是一個編制相當精緻的團隊,除了日常維護工作外還有許多新項目正在進行,面對突然出現的挑戰,我們必須非常快速的釐清問題大小,以下是我列出本次的處理步驟,與大家分享:

    • 清查系統中有用到 Imgur 上傳的部分
      • 筆記中上傳的圖片
      • 使用者上傳的 avatar
      • 團隊空間的 logo
    • 統計需要處理的圖片數量
    • 定位到相關的實作程式碼,並找到熟悉該工作的工程師討論
    • 分成多階段進行
      1. 先將筆記中的圖片與關聯抽出來
      2. 逐筆進行圖片轉移到 HackMD 的圖片空間
      3. 讓全站使用者都使用 HackMD 的圖片空間,避免未來又遇到需要轉移的狀況
      4. 讓付費使用者享有圖片網址自動轉換
      5. 通知曾經有在 HackMD 上傳圖片到 Imgur 的使用者已經轉移完成
  • 小編 :實際施作上有遇到什麼困難嗎?

  • Max : 首先,統計圖片和筆記的數量時我們就已經知道會是有點複雜的工作了,這次需要處理的Imgur 圖片約有九百萬張,轉移的資料為 1.8TB,這些圖片遍佈在 127 萬份筆記中,分別屬於 15 萬個用戶以及約一萬個團隊,要如何在不變更筆記內容的狀況下轉移圖片是非常大的挑戰和困難。

  • 小編 : 是如何順利解決的呢?

  • Max : 我們有想過如果讓免費使用者繼續維持用 Imgur,或是轉用其他服務,未來還是有可能會遇到相同要轉移的狀況,為了保障使用者的隱私,這次決定讓所有使用者都能用到 HackMD 的圖片空間,強化隱私並一勞永逸。不過如此大量的圖片,原訂是需要耗費一週才能轉移完成,經過討論我們決定透過並行的方式批次處理,本次使用 AWS Lambda 同時最多跑 15 個 jobs,每秒可以備份約 50~100 張,最後花了三天才轉移完成。

  • 小編 : 有一些使用者建議我們推付費方案轉移,為什麼最後選擇直接進行轉移呢?

  • Max : 我們一直都以維護「每一位」用戶的使用權益為原則,我們無法預期使用者何時會付費也不知道 Imgur 會移除哪些圖片,有很多免費的使用者長期公開分享很多有價值的內容,因此希望所有筆記中的圖片都不會遺失(當然不包含違法使用的小部分),在這次處理時我們做得相當周全,無論是什麼時候上傳的圖片都會進行轉移,每一位使用者都可以在筆記的筆記設定(Settings → Notes)頁面看到自己總共有幾張圖片已經完成轉移。

如下:進入個人筆記頁面左下角點選 ⚙ Settings ➤ 側邊欄點選 Notes

感謝使用者們的支持與愛護 ♡

HackMD 以開發者為本,我們非常喜歡使用者之間在社群上討論解法的互動方式,透過大家的互動我們也感受到許多溫暖,在轉移的消息公布後有許多使用者轉換付費以行動支持我們,原來團隊長期默默耕耘是有被看見的(拭淚),希望我們的努力有回應到大家的討論和期待。

為了提升使用者體驗,團隊從去年開始如火如荼的進行許多功能更新和調整,也陸續的訪談許多國際工作團隊,近一步了解用戶協作的需求。預計於今年下半年推出新版的 HackMD,有興趣的朋友可以透過 Preview features 一窺新介面。

當然,Beta功能都尚在開發和不斷地測試中,有問題也歡迎透過 support@hackmd.io 回饋完整的建議給我們。

HackMD 的 Discord 來了

同時我們也新設立官方 Discord 伺服器。對!沒錯!我們終於跟上 Discord 了!🎉

👉👉👉 點此加入

這是一個嶄新的交流空間,目前試營運中,日後我們也會將 HackMD 的第一手資訊公告在頻道上,也讓各位關心、好奇 HackMD 的朋友,直接與團隊互動。

未來我們會在頻道上進行有趣活動,與你一起塑造屬於 HackMD 的社群文化。期待每一個你!

Get started for freePlay around with it first. Pay and add your team later.
Get started for free

Subscribe to our newsletter

Build with confidence. Never miss a beat. Learn about the latest product updates, company happenings, and technical guides in our monthly newsletter.