TgWitness / 文件說明

已測試的內容 →

參考資料 / 證據

Telegram · 儲存與還原

備份功能、將舊檔案移至您的雲端儲存空間、在 Object Lock 下的副本,以及在新裝置上的資料恢復。

TgWitness / 文件說明 · 部署與復原

部署與復原

該面板將任務分為三類:

任務 功能說明
保留備份 將已簽名的日誌、檢查點、備份檔案及排程中的匯出項目複製到已設定的 S3 儲存位置。
免費的本地儲存空間 將選定的舊附件複製到 S3 或 rclone 雲端遠端儲存空間,完整讀回內容,驗證加密位元組,然後刪除已驗證的本地副本。
保留一份證據副本 設定 S3 Object Lock 並檢查回傳的保留狀態。該服務必須確認所請求的模式與日期。

釋放儲存空間時,絕不會刪除或覆寫已簽名的日誌。每個附件均保留 其原始 SHA-256 以及一份恢復憑證。可選的 gzip 壓縮會在 經過驗證的加密之前進行。雲端檔案名稱不包含 Telegram 名稱、 聊天 ID 或原始附件名稱。單一附件最大可達 32 GiB。

僅憑上傳回應並不能作為刪除檔案的授權。TgWitness 會下載 完整的加密物件並驗證其大小,SHA-256 則會儲存收據, 並在刪除前立即再次檢查本機的位元組數。若發生上傳失敗、 讀回結果不符或傳輸被取消的情況,本機檔案將保留原狀。若 已啟用的證據備份尚未複製該檔案,刪除操作亦會等待備份完成。

本頁內容

磁碟空間即將耗盡時#

當可用空間低於參數 → 附件 → 可用磁碟空間中的門檻(預設 1 GiB)時,附件下載會暫停並保留佇列。文字觀察繼續進行。這不受通知設定影響:關閉通知不會關閉下載預留空間或儲存保護措施。

若要提早介入,請啟用自動執行,選擇刪除本機檔案以釋放空間,並啟用磁碟空間不足時額外執行一次轉存。此選用規則預設在可用空間低於 5120 MiB 時啟動,分批處理直到可用空間達到 10240 MiB。兩個門檻皆可設定。它與手動執行使用相同的目的地、檔案最短存放時間、批次上限、完整回讀驗證及證據備份前提條件,不會自行啟用目的地。每 30 秒檢查一次;發生錯誤或沒有進展時,下次嘗試延後五分鐘。規則狀態及重試時間在重新啟動後保留。規則未啟動時,排程工作仍依正常間隔執行。

面板顯示可用空間、封裝預留空間、空間不足規則是否就緒,以及因暫存空間不足而略過的檔案。封裝和還原在開始前檢查暫存空間的峰值需求,並在寫入期間檢查可用空間。預留量使用下載設定,但儲存操作至少保留 64 MiB。這些檢查不是檔案系統配額;其他程序仍可能在兩次檢查之間耗用空間。

Gzip 對遠端物件進行無損壓縮,不會縮小使用中的日誌,也不會建立本機封存檔。JPEG、影片及 ZIP 可能幾乎不縮小,甚至略微增大。啟用壓縮時,目前封裝流程可能暫時需要約兩倍附件大小的空間,再加上預留量。請為最大的檔案選擇足夠早的啟動門檻。無法封裝的過大檔案會保留並回報;較小檔案及已驗證的遠端副本仍可釋放空間。已有驗證通過的副本時,不必再建立本機封裝檔即可移除本機檔案。還原也需要暫存空間,空間不足時可能遭拒。

沒有符合條件的可移動檔案或未設定目的地時,TgWitness 無法自動回收空間。儲存管理絕不會裁剪或重寫簽署過的日誌。新的文字觀察仍需要磁碟空間。

連接目標位置#

在「附加功能」→「儲存空間與磁碟空間」→「管理儲存空間」中,選擇任務與目標位置, 儲存後,再選取「測試上傳與下載」。此測試會上傳一個隨機的小型探測資料,並將其 讀回。此過程不會使用 Telegram 的內容。

若使用 S3,請採用服務供應商的實際端點、區域及儲存桶。Wasabi、Backblaze、 Cloudflare R2 及其他相容服務均採用相同的 S3 設定。僅具備相容 API 並不代表支援 Object Lock。在「治理模式」下, 經授權的管理員可能繞過保留設定;而「合規模式」則有不同的 限制。在依賴保留設定之前,請先查閱回傳的 Object Lock 狀態。

若要設定 rclone 目標位置,請透過 rclone 的提供者設定建立一個遠端,並 將該遠端的 [name] 區段貼入面板中。已安裝的輔助程式支援 MEGA、Google Drive、OneDrive、Dropbox、Box、pCloud 以及 選取器中顯示的其他服務提供者。憑證會儲存於此工作區的加密保管庫中。OAuth 授權更新資訊會儲存回保管庫。憑證不會新增至日誌 事件,也不會包含在還原下載檔案中。

此輔助程式安裝於工作區內,並附有固定版本及 SHA-256。 它不會被加入系統 PATH。設定檔和工作檔是 該工作區內的暫存檔。基於命令列及本機檔案的遠端連線將被 拒絕。rclone 目前要求針對 外部請求明確選取「Direct」路由。若工作區採用 SOCKS5 或 HTTP 路由,請使用原生 S3 儲存空間; rclone 不會在路由不可用時靜默繞過。

請保留還原檔案#

請選擇「複製檔案後儲存還原檔案」,並將其存放於 安裝目錄以外的位置。該檔案包含解密金鑰及已簽署的物件 收據,因此請將其視為私鑰備份。請同時將原始的遠端設定 及目標憑證分開存放。在後續複製操作之前所建立的 還原檔案,將不包含該後續檔案的收據。

簽名金鑰的指紋應已獨立記錄在案。若僅 依據同一檔案內提供的金鑰來驗證簽名,並無法確定該 還原檔案的歸屬。

若要修復現有工作區中遺失的儲存收據,請開啟「從已儲存的還原檔案還原檔案」, 並選取該檔案。該面板會驗證簽名,並要求使用相同的工作區 簽署金鑰。若儲存金鑰不同,系統將拒絕進行替換。接著選擇「還原 所有檔案」。還原過程會暫停自動儲存規則,以確保下一次排定的 處理不會立即再次刪除已還原的檔案。當 本地副本處理完畢後,請重新啟用該規則。

還原功能會驗證密文、驗證解密過程、在 必要時進行解壓縮,並檢查原始明文 SHA-256,然後將檔案放置於 media/。 損壞的遠端物件絕不會取代本機檔案。若現有本機檔案的 位元組內容不同,系統會保留該檔案供審查,而非直接覆寫。

安裝資料遺失後的恢復方法#

在另一台機器上安裝 TgWitness。使用私人還原檔案、另行 記錄的指紋,以及原始目的地的憑證:

python -m tgwitness.storage recover \
  --recovery storage-recovery.json \
  --fingerprint TRUSTED_WORKSPACE_SHA256 \
  --credentials original-rclone.conf \
  --output recovered-attachments

對於 S3, --credentials 指向一個包含 access_key ,並 secret_key;經簽名的恢復檔案則提供目標設定。 此指令會使用直接外部連線,並在 rclone 遠端需要時下載已釘選的輔助程式 。若輸出目錄已存在,則會拒絕建立。

復原的原始位元組將寫入 recovered-attachments/media/,其名稱取自 其SHA-256。 recovery-log.jsonl 是一個未簽名的復原操作記錄。 此指令不會重建已遺失的簽名日誌或其簽名金鑰。請為這些資料保留 完整的工作區備份。儲存復原檔案並非完整的工作區 備份。

操作員機器人與完成通知#

此 Telegram 機器人歸營運者所有。請透過 BotFather 建立該機器人,並在控制面板中設定其 代幣、目標聊天室以及明確允許的 Telegram 使用者 ID。發送者與聊天室 兩者必須完全吻合。轉發的訊息以及來自其他 機器人的指令將被忽略。

/status 且 /stats 在預設的「僅狀態」模式下皆可使用。可選的 控制模式則新增 /pause, /resume 和 /copy. /copy 並觸發已設定的 儲存任務;這並不表示遠端上傳已然完成。指令 無法傳入任意的 URL、檔案或 shell 程式。

請分別使用「警示」與「任務完成」的獨立通知設定。完成 通知會區分「存在缺漏的帳戶匯出」與「完整的匯出」,並顯示 歷史紀錄及儲存次數。除非在通知設定中另行 啟用,否則訊息摘錄不會包含在內。服務選擇器是根據實際 安裝的 Apprise 目錄所產生,而非一組固定的提供者範例。