如何將 Slack 的資料匯到 Rocket.Chat?

Rocket.Chat 是一套基於 Meteor.js 開發的開放源始碼 Chat 專案,有著 Slack like 的別名。在建置 Rocket.Chat server 的部份,凍仁曾試著用 Heroku 的方式建置,但只要一匯入 Slack 的資料 (data) 就會炸掉。最後是參考了文件中的 AWS / 7. Set up Docker Containers 的方式才可順利匯入資料。

回到主題,以下就讓凍仁介紹怎麼用 Slack 的友站搬家工具把資料搬到 Rocket.Chat 上吧!

1. 匯出 Slack 資料

1.1. 前往 Slack 網站進行匯出。
▲ Export Data 的網址為 https://[your_app].slack.com/services/export

1.2. 點選 Start Export 建立匯出資料。

1.3. 待作業完成,Slack 會藉由 Email 和 @slackbot 發送匯出完成通知。

1.4. 回到 Export Data 頁面,下方會多出下載按鈕,其載完的檔案副檔名為 .zip。

2. 將 Slack 資料匯入 Rocket.Chat

2.1. 回到 Rocket.Chat,並進入管理介面 (Administration),其網址應為 https://[your_rocketchat]/admin

2.2. 取消 Allow Domain List 的設置,否則會因無法成功匯入非白名單 Email 的使用者導致匯入失敗。其 Allow Domain List 的設定可以在 https://[your_rocketchat]/admin/Accounts 下方的 Registration 找到。

2.3. 回到管裡介面並進入 Import,並點選 Slack 下方的 START
▲ Import 的網址為 https://[your_rocketchat]/admin/import

2.4. 進到 Import Slack 介面後,選擇先前從 Slack 下載的 zip 檔。
▲ Import Slack 的網址為 https://[your_rocketchat]/admin/import/prepare/slack

2.5. 解析中,其所需時間將依 server 效能和 Slack 資料大小有所不同。
▲ 解析中的進度條非常不明顯,一開始還以為是當掉了。

2.6. 解析後,Rocket.Chat 將會列出預的使用者 (Users) 和頻道 (Channels),若需全部匯入,可直接點選 START IMPORTING 按鈕。
▲ 若想取消已刪除的使用者和已封存的頻道,可藉由上方的按鈕進行操作。

2.7. 匯入完成!
▲ 凍仁大概過了一晚才看到這個畫面 ...。

一開始還很納悶從 Slack 匯出的 zip 怎麼不到 20MB?沒想到匯入完成後用了快 100GB 的儲存 (storage) 空間,相信在匯入的過程中 Rocket.Chat 會另外呼叫 Slack API 並取得相關檔案。

若客倌也一直卡在匯入失敗的問題,不妨先把 storage 加大再試試看吧!

資料來源:
Export your team's Slack history | Slack Help Center
Rocket.Chat Docs | Slack

留言

Popular Articles

MySQL 語法匯整