# Telegram · 保存と復元

Canonical page: https://phishdestroy.github.io/TgWitness/ja/docs/reference/storage/

バックアップ、古いファイルのクラウドへの移動、Object Lock によるデータの複製、および新しいマシンでの復元。

[Project context and measured scale](https://phishdestroy.github.io/TgWitness/docs/reference/overview/)

[Documentation index](https://phishdestroy.github.io/TgWitness/ja/llms.txt)

バックアップ、古いファイルのクラウドへの移動、Object Lock によるデータの複製、および新しいマシンでの復元。

[TgWitness](https://github.com/phishdestroy/TgWitness/blob/main/README.md) / [ドキュメント](https://github.com/phishdestroy/TgWitness/blob/main/docs/README.md) · [導入と復旧](https://phishdestroy.github.io/TgWitness/ja/docs/reference/deployment/)

![展開と復旧](https://phishdestroy.github.io/TgWitness/assets/chapter-operate.svg)

このパネルでは、以下の3つのタスクを区別しています：

| タスク | 機能の概要 |
| --- | --- |
| バックアップを保存しておく | 署名済みのジャーナル、チェックポイント、保存されたファイル、およびエクスポート待ちのデータを、設定済みの S3 保存先にコピーします。 |
| 無料のローカルストレージ | 選択した古い添付ファイルを S3 または rclone のクラウドリモートにコピーし、それらを完全に読み込み、暗号化されたバイトを検証した後、検証済みのローカルコピーを削除します。 |
| 証拠用コピーを保管する | S3 Object Lock を設定し、返された保存期間ステータスを確認します。サービスは、要求されたモードと日付を確認する必要があります。 |

空き容量を確保する際、署名済みのジャーナルが削除されたり上書きされたりすることはありません。各添付ファイルには、 元のSHA-256と復元用レシートが保持されます。オプションのgzip圧縮は、 認証付き暗号化の前に実行されます。クラウド上のファイル名には、Telegramの名称、 チャットID、または元の添付ファイル名は含まれません。1つの添付ファイルの最大サイズは32 GiBです。

アップロードの応答だけでは、ファイルを削除する許可とはなりません。TgWitnessは 暗号化されたオブジェクト全体をダウンロードし、そのサイズとSHA-256を検証してレシートを保存し、 削除の直前にローカルのバイト数を再度確認します。アップロードの失敗、 読み取り結果の不一致、または転送の中止があった場合、ローカルファイルはそのまま残ります。もし 有効になっている証拠バックアップがそのファイルをまだコピーしていない場合、削除もそれが完了するまで待機します。

**このページでは**

- [ディスクの容量が不足している場合](https://phishdestroy.github.io/TgWitness/ja/docs/reference/storage/#when-the-disk-is-filling-up)
- [宛先を接続する](https://phishdestroy.github.io/TgWitness/ja/docs/reference/storage/#connect-a-destination)
- [復元ファイルは保持してください](https://phishdestroy.github.io/TgWitness/ja/docs/reference/storage/#keep-the-recovery-file)
- [インストールデータを紛失した場合の復旧](https://phishdestroy.github.io/TgWitness/ja/docs/reference/storage/#recover-after-losing-the-installation)
- [オペレーターボットおよび完了通知](https://phishdestroy.github.io/TgWitness/ja/docs/reference/storage/#operator-bot-and-completion-notices)

## ディスクの空き容量が少なくなった場合

空き容量が**パラメーター → 添付ファイル → ディスクの空き容量**の設定値（既定は1 GiB）を下回ると、添付ファイルのダウンロードを一時停止し、キューを保持します。テキストの観測は続行します。これは通知設定とは独立しており、通知を無効にしてもダウンロード用の予約容量やストレージの保護は無効になりません。

早めに対処するには、**自動実行**を有効にし、**ローカルファイルを削除して容量を空ける**を選び、**空き容量が少ないときに追加の移送を実行**を有効にします。この任意のルールは、既定では空き容量が5120 MiB未満で開始し、10240 MiBになるまでバッチ処理を続けます。両方のしきい値を変更できます。移送先、ファイルの最小経過時間、バッチ上限、全内容の読み戻し検証、証拠バックアップの前提条件は手動実行と同じです。移送先を自動的に有効にはしません。30秒ごとに確認し、エラーまたは進捗がない場合は次の試行を5分遅らせます。状態と再試行時刻は再起動後も保持します。ルールが作動していない間、定期実行は通常の間隔を使います。

パネルには空き容量、パッケージ化用の予約容量、ルールの待機状態、一時領域不足でスキップしたファイルを表示します。パッケージ化と復元は開始前に一時領域の最大必要量を確認し、書き込み中にも空き容量を確認します。ダウンロード用の予約容量設定を使いますが、ストレージ操作では最低64 MiBを確保します。これはファイルシステムのクォータではなく、確認の間に別のプロセスが容量を消費する可能性があります。

Gzipはリモートオブジェクトを可逆圧縮します。使用中のジャーナルを縮小したり、ローカルアーカイブを作成したりはしません。JPEG・動画・ZIPはほとんど縮まらず、わずかに大きくなる場合もあります。圧縮を有効にすると、パッケージ化には一時的に添付ファイルの約2倍の容量と予約容量が必要になることがあります。最大のファイルを考慮して早めの開始しきい値を設定してください。大きすぎるファイルは保持して報告し、小さいファイルや検証済みリモートコピーでは引き続き容量を空けられます。検証済みコピーがあれば、追加のローカル作業ファイルを作らずにローカルファイルを除去できます。復元にも一時領域が必要で、確保できるまで拒否される場合があります。

移動可能なファイルがない場合や移送先が未設定の場合、TgWitnessは自動で容量を空けられません。ストレージ管理が署名付きジャーナルを削減・書き換えすることはありません。新しいテキスト観測の保存には引き続き容量が必要です。

## 送信先を接続する

**[Extras] → [Storage & disk space] → [Manage storage]** で、タスクと保存先を選択し、 保存してから、**[Test upload & download**] を選択します。このテストでは、ランダムな小さなプローブをアップロードし、それを 読み戻します。Telegramのコンテンツは使用されません。

S3 を使用する場合は、プロバイダーの実際のエンドポイント、リージョン、バケットを使用してください。Wasabi、Backblaze、 Cloudflare R2 およびその他の互換サービスでは、同じ S3 設定が使用されます。互換性のある API があるからといって、Object Lock がサポートされているとは限りません。ガバナンスモードでは、 権限のある管理者が保存期間の設定をバイパスできる場合がありますが、コンプライアンスモードでは異なる 制約が適用されます。保存期間の設定を信頼する前に、返された Object Lock のステータスを確認してください。

rcloneの宛先として設定する場合は、rcloneのプロバイダー設定を使用してリモートを1つ作成し、 そのリモートの `[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`を含む非公開のJSONファイルを指し、署名付き復旧ファイルが宛先設定を提供します。 このコマンドは直接的な外部接続を使用し、rcloneのリモートがそれを必要とする際に、ピン留めされたヘルパーを ダウンロードします。既存の出力ディレクトリは拒否されます。

復元された元のバイトデータは `recovered-attachments/media/`に書き込まれ、そのファイル名は SHA-256によって決定されます。 `recovery-log.jsonl` は、復旧操作の署名なし記録です。 このコマンドでは、紛失した署名付きジャーナルやその署名キーを再作成することはできません。それらについては、 ワークスペースの完全なバックアップを保持してください。ストレージ復旧ファイルは、ワークスペースの 完全なバックアップではありません。

## オペレーターボットと完了通知

Telegramボットはオペレーターに属します。BotFatherを通じて作成し、パネルで トークン、宛先チャット、および明示的に許可されたTelegramユーザーIDを設定してください。 送信者とチャットの両方が一致している必要があります。転送されたメッセージや他の ボットからのコマンドは無視されます。

`/status` また `/stats` は、デフォルトの「ステータスのみ」モードで利用可能です。オプションの 「コントロールモード」では、 `/pause`, `/resume` および `/copy`. `/copy` 設定された ストレージタスクを要求します。これは、リモートアップロードがすでに完了したことを意味するものではありません。コマンド では、任意のURL、ファイル、またはシェルプログラムを指定することはできません。

アラートとタスク完了については、それぞれ個別の通知設定を使用してください。完了 通知では、データに欠落があるアカウントのエクスポートと完全なエクスポートを区別し、 履歴や保存件数を表示します。メッセージの抜粋は、通知設定で個別に 有効にしない限り含まれません。サービスピッカーは、固定されたプロバイダーの例ではなく、実際に インストールされている Apprise カタログから生成されます。
