コンテンツにスキップ
getnextpdf.com

NextPDF が Cloudflare 上で構築する理由

nextpdf/cloudflare パッケージを使うと、 NextPDF はエッジで PDF をレンダリングし、生成したファイルを R2 にアーカイブし、 API リクエストがワーカーに届く前にゲートをかけられます。その具体的な方法は、このセクションの他のページで解説しています。このページはそれとは少し違います。私たちがそもそもなぜこれを作ることにこれほどわくわくしたのか、その短くて正直な理由 — そして感謝の気持ちを綴ったものです。

はっきり言ってしまいましょう。NextPDF チームは Cloudflare 上で作ることが大好きです。 喜んで手を伸ばしたくなるプラットフォームであり、その本当に気前のよい無料枠が大きな理由になっています。この気前のよさは、私たちにとって些細なことではありません。それこそが、 小さなチームがオープンソースコミュニティに、これまで以上に多くを還元できる理由なのです。 エンジンをよりオープンに保ち、みんなの役に立つ部分により多くの時間を注ぎ、プロジェクトのためというより、インフラのコストに引きずられて下す判断を減らせる。プラットフォームがこうして土台を下げてくれると、その上に積み上げる仕事はもっと野心的なものになれます。

ここは、私たちが心からお伝えしたい部分です。なぜなら、これが扉を開くと考えているからです。 NextPDF を Cloudflare 上で使うと、あなたの PHP アプリケーションが HTML を保持し、 Cloudflare Worker がヘッドレスブラウザを保持します。ブリッジがマークアップを送り出し、 レンダリング済みの PDF バイト列を受け取るので、ヘッドレス Chromium を PHP プロセスの中で動かす必要はまったくありません。そこから、生成したファイルを R2 にアーカイブして署名付き URL を返したり、 受信する API リクエストがワーカーに届く前に、パッケージのレベルでゲートをかけたりできます。

これは、絞り込んだ仕事をしっかりとこなす小さなパッケージで、私たちは丁寧に作り込みました。 けれども、これをあなたの手に届けるのが待ちきれなかった理由は、コードそのものではありません。 その背後にある問いです。これほど力のある PDF エンジンが、これほど力のあるプラットフォームと出会ったとき、人々はどれほど深く、広く、興味深いものを作り出すのでしょうか。そのすべてを私たちが想像しきれたとは思っていません。むしろ、そこにこそ意味があるのです。 まずは 概要クイックスタート から始めて、どこまで行けるか確かめてみてください。

HTML をプロセスの外に送り出し、別の場所でレンダリングすることは信頼境界であり、私たちはそれを信頼境界としてきちんと扱いました。ブリッジは何かを送信する前に、リクエストがどこへ行ってよいのかを検証します。これはサーバーサイドリクエストフォージェリに関する OWASP のガイダンスの精神に沿ったものです。さらにそのトランスポートは、想定した公開鍵を正確にピン留めできます (RFC 7469)。詳細 — URL の検証、サイズ上限、ピン留め、R2 の制御 — は Cloudflare のセキュリティと運用 にまとめてあります。

率直に言わせてください。ありがとう。気前のよい無料枠と信頼できるプラットフォームのおかげで、 私たちは NextPDF をオープンに保ちやすくなり、このドキュメントを読んでいる開発者も、まず請求書に判断を委ねることなく、野心的な何かを試しやすくなりました。

このドキュメントサイト自体も Cloudflare 上で配信されています。ですから、もし今これを読んでいるなら、 あなたはそれが実際に動いているところを目にしているのです。


Cloudflare、および Cloudflare Workers や R2 といった関連する製品名は Cloudflare, Inc. の商標であり、ここでは NextPDF がこのプラットフォームとどのように相互運用するかを説明する目的でのみ使用しています。NextPDF は独立したプロジェクトであり、Cloudflare, Inc. と資本関係はなく、Cloudflare による推奨やスポンサーを受けているものでもありません。