編集済みPDFの送信データをSupabaseに保存する方法

Profile picture of Benjamin André-Micolon

SimplePDFをアプリやAIエージェントに追加し、PDFの送信データをSupabase Storageに保存したいとします。

たとえば以下のようなことが可能です

  • 送信データの処理をさらに自動化する:たとえばフォームからデータを抽出して処理する
  • PDFをベクターストアに保存し、セマンティック検索や送信されたPDF内の重複や類似の自動検出を実現する

このチュートリアルでは、SimplePDFのPRO機能を2つ使用します:

  1. Webhook連携 - Supabase Edge Functionsと組み合わせて使用

Supabase Edge Functionのコードはこちらにあります

  1. S3連携 - Supabase Storageと組み合わせて使用

PDF送信データ用にSupabase Storageを設定する

このセクションでは、SimplePDFのデフォルトストレージの代わりにSupabase Storageを編集済みPDF送信データ(およびドキュメント)のストレージとして設定する手順を説明します。

  1. Supabaseプロジェクトの「Storage」に移動し、New bucketをクリックします

  2. バケットに名前を付け、プライベートのままにして(Public bucketはトグルしないでください)、Saveをクリックします

Supabase Storageでバケットを作成

  1. Storageの設定で、新しいS3 Access Keysを作成します

SupabaseでS3 Access Keyを作成

  1. SimplePDFアカウントに移動し、以下のようにS3ストレージを設定します:

ステップバイステップのガイドはこちらをご覧ください

Endpoint: <Supabase Storage設定のS3 ConnectionからエンドポイントをコピーE>
Path-style: <トグルを有効にする>
Region: <Supabase Storage設定のS3 Connectionに表示されているリージョンを選択>
Bucket: <バケット名を入力:この例では「pdf」を使用>
Access Key ID: <ステップ3で取得した値を貼り付け>
Secret Access Key: <ステップ3で取得した値を貼り付け>

SimplePDFでS3を設定

  1. Updateをクリックし、Supabase Storageに移動すると、新しいファイルが自動的に追加されていることを確認できます。これで設定が完了したことが確認されます!

このファイルは不要なので削除して構いません

SupabaseでS3設定が完了

PDF送信メタデータを保存するSupabaseテーブルを作成する

このセクションでは、各新規送信についてSimplePDFから受信するメタデータを保存するための新しいテーブルを作成します。Supabase Edge Functionsを使用してテーブルにデータを挿入します。

チュートリアルをスキップしたい場合は、完全なソースコード、テーブル定義、前提条件をこちらでご確認いただけます。

  1. Database > Tablesに移動し、新しいテーブルを作成します。simplepdf_submissionsと名付けましょう。

  2. 以下のスキーマを定義します: SQLで定義されたスキーマはGitHubのこちらで確認できます

  • idint8 - Primary
  • document_nametext
  • document_idtext
  • submission_idtext
  • submission_bucket_pathtext
  • contextjsonb

Supabaseで作成されたテーブル

  1. 用意済みのEdge Functionをデプロイします:GitHubのソースコード
npm i
npm run deploy
  1. simplepdf_submissionsテーブルへの行挿入をEdge Functionに許可する新しいRLSポリシーを作成します:

本番環境では、より厳格なRLSポリシーを推奨します。またはSimplePDF側から認証ヘッダーを渡してWebhookの呼び出しを認証することも可能です

alter policy "Allow edge function to insert into simplepdf_submissions"
  on "public"."simplepdf_submissions"
  to anon
  with check (true);

作成されたRLSポリシー

  1. SupabaseのEdge Functionsセクションでsimplepdf-webhooks Edge FunctionのURLをコピーします

Edge Function URLをコピー

  1. SimplePDFに移動し、デプロイしたsimplepdf-webhooks関数を指すようにWebhookを設定します

ステップバイステップのガイドはこちらをご覧ください

SimplePDFで設定されたWebhook

以上で連携が完了しました!Supabase Storageに編集済みPDFを保存し、Supabase Edge Functionsを使用して編集済みPDF送信に関するイベント(およびメタデータ)をテーブルに保存できます!

Supabaseでの最初の編集済みPDF送信

ご質問がございましたら、お気軽にsupport@simplepdf.comまでご連絡ください。

あなたが興味を持つかもしれない