Notariumドキュメント
ドキュメントのバージョン: latest

エクスポート

エクスポートは、スペース全体、または単一のフォルダを、Markdownファイルをまとめた1つのZIPアーカイブとしてダウンロードします。ファイルこそが信頼できる唯一の情報源(file-first原則)であるため、エクスポートはインデックスから再構築するのではなく、ディスクから直接ファイルを読み取ります。アーカイブに入るのは、各ファイルのフロントマターにある notarium-id まで含めた実際のファイルそのものです。

だからこそエクスポートは可逆です。インポートで元に戻すことも、構造・同一性・日付を失うことなく別のインスタンスへ移すこともできます。エクスポートとは実のところ「データを外へ持ち出す」ことではなく、すでにあなたのファイルとしてディスク上に存在しているものを、手軽にパッケージ化する手段なのです。

エクスポートの方法

エクスポートは、スペースの設定にある Export タブにあります。

  • ボタンを押すとジョブがキューに入り、以降はプログレスバー(ノート数が判明した時点でパーセント表示になります)と Cancel ボタンが表示されます。
  • 準備が整うとアーカイブは自動でダウンロードされ、その横には Download .zip(もう一度ダウンロード)と Export again(エクスポートを再実行)のボタンが残ります。
  • タブを離れて戻っても安全です。戻ってくれば、実行中のジョブか、ダウンロード可能な状態のファイルが再び表示されます。

単一のフォルダは、ツリーのコンテキストメニューにある Export folder 項目からエクスポートできます。これはサブツリーにスコープを絞った同じジョブで、進捗はキャンセルボタン付きの「固定表示」トーストに現れます。

オプション

どちらのエクスポート経路も、同じパラメータのセットを受け付けます。

パラメータ動作
scopeuser(デフォルト)· alluser — 自分のノートのみ。all — エージェントのメモリマウント(.notarium/memory)を含む、スペースの中身すべて。
frontmatterkeep(デフォルト)· stripkeep はファイルをそのまま書き出す。strip はYAMLブロックを切り落とし、読むための綺麗なコピーにする。
folderパスエクスポートをサブツリーに絞り込む(Export folder が行うこと)。
frontmatter=strip は再インポートを壊す

フロントマターを切り落とすと、欠損のあるコピーになります。YAMLブロックとともに notarium-id とタグが失われるからです。このようなアーカイブはノートを読んでもらうために渡すには便利ですが、もはや欠損なく再インポートすることはできません。データを移す用途では keep(デフォルト値)のままにしてください。

エクスポートはインスタンスのバックアップではない

scope=all であっても、エクスポートのアーカイブに入るのはスペースのMarkdownファイルだけです。メタデータデータベースは含まれません。アカウントも、アクセス権限も、バージョン履歴も、ジョブの状態もありません。ここからインスタンスを復元することはできません。バックアップはイメージの組み込みコマンドで行う別の操作です。バックアップとリストアを参照してください。

内部の仕組み

エクスポートは、どれだけ大きなナレッジベースでもメモリに溜め込まないよう、ストリーミング方式で構築されています。

  • デフォルトは非同期ジョブ。 ホストにメタデータデータベースがある場合(セルフホストでは通常こうなります)、エクスポートは永続ジョブになります。バックグラウンドワーカーがZIPをアーティファクトストレージに組み立て、再開可能なダウンロードに対応した完成ファイルを提供します。タブを閉じても、接続が切れても、サーバーが再起動しても、エクスポートは頓挫しません。
  • ダウンロードはバッファリングされない。 完成したアーカイブをブラウザはディスクへ直接ストリーミングし、ファイル名はレスポンスヘッダーから取得します。大きなナレッジベースがタブのメモリに溜まることはありません。
  • キャンセルは処理を止める。 ダウンロードをキャンセルすればノートの取り出しもそこで止まり、サーバーが無駄にナレッジベース全体を読み続けることはありません。
flowchart LR
  notes[(Markdownノート)] -->|ディスクから読み取り| worker[バックグラウンドワーカー]
  worker -->|ZIP| artifact[ジョブアーティファクト]
  artifact -->|ダウンロード| user([ブラウザ])
メタデータデータベースなしのエクスポート

メタデータデータベースを持たないホスト(データベースが無いのは AUTH_MODE=none モードのときだけです)では、ジョブ層がありません。エクスポートは同期ストリーミング経路をとり、同じZIPが単一のリクエスト内で直接ダウンロードとして提供されます。進捗表示も再開可能なダウンロードもありません。変わるのは配信方法だけで、結果は同じです。

境界

  • 一度に1つのスペース。 スペースは独自のアクセス制御を持つ隔離されたストアです。複数をエクスポートするには、それぞれ個別にエクスポートしてください。
  • アーティファクトにはTTLがある。 完成したZIPは限られた時間だけ(デフォルトで7日)保持され、ガベージコレクターによって削除されます。期限切れになるまでは再ダウンロードできます。
  • バイナリ添付ファイルはエクスポートされない。 アーカイブに入るのはノートのテキスト、つまりMarkdownファイルです。
  • キャンセルはできるが一時停止はできない。 ジョブはキャンセルできますが、一時停止して再開する仕組みはありません。

次へ

  • インポート — アーカイブを元に戻す、またはナレッジベースを別のインスタンスへ移す。
  • セクション概要 — file-firstがインポートとエクスポートを軽い操作にしている理由。