Skip to content

文書のプレビュー

PDF と Office の文書(doc / docx、xls / xlsx、ppt / pptx、odt / ods / odp、rtf)に、1 ページ目のサムネイルと、 アプリの中で全ページを見られるビューアを付けます。

  • PDF はアプリのサーバ(app)が自分でプレビューを作ります。追加の準備は要りません。
  • Office の文書 は、converter サービス(Gotenberg 8 の LibreOffice)で PDF にしてから プレビューを作ります。

起動

converter は docker-compose.yml に入っているので、ふつうに起動すれば一緒に動きます。最初の起動のときに、 イメージ(約 440 MB、展開後 1.5 GB)のダウンロードが加わります。

設定

変数(infra/.env) 内容 既定
PREVIEW_CONVERTER_URL converter の URL。空にすると Office のプレビューを作りません(PDF は作ります) http://converter:3000
PREVIEWS_ENABLED false でプレビューを一切作りません true
PREVIEW_MAX_INPUT_BYTES これより大きいファイルはプレビューを作りません 52428800 (50 MB)

converter の隔離

  • converter は外に出られない専用のネットワーク(internal: true)にだけつながり、ホストにもインターネットにも 出られません。ポートも公開しません。
  • 1 回 90 秒・55 MB・メモリ 1 GB・CPU 1 の制限があります。
  • 確認:docker compose exec converter curl -m 5 https://example.com が名前解決できずに失敗すれば、外に出られません。

メモリと処理時間

  • メモリは待機中 100 MB ほど(LibreOffice は 10 分使わなければ止まります)。変換中は文書によって増えます(上限 1 GB)。
  • 小さな文書なら 1 件 1 秒未満で変換できます。
  • converter は状態を持たないので、バックアップは要りません。プレビューの画像はオブジェクトストレージに保存され、 いつものバックアップに入ります。

プレビュー機能より前のファイル

この機能を入れる前に添付されたファイルのプレビューは、次のコマンドで作れます。途中で止めても続きから再開でき、 「more files are left」と出たらもう一度実行します。

docker compose -f docker-compose.yml -f docker-compose.prod.yml exec app \
  python -m app.cli generate-previews --limit 200

詳しくは docs/PREVIEWS.md をご覧ください。