logologo
スタート
マニュアル
開発
プラグイン
API
ホーム
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
スタート
マニュアル
開発
プラグイン
API
ホーム
logologo
概要

データソース

データソース管理
メインデータソース

外部データソース(データベース)

紹介
外部 MySQL
外部 MariaDB
外部 PostgreSQL
外部 MSSQL
外部 Oracle
メインDB・外部DB比較
REST API データソース
KingbaseES データソース

データテーブル

概要
標準テーブル
継承テーブル
ファイルテーブル
ツリーテーブル
カレンダーテーブル
コメントテーブル
式テーブル
SQL テーブル
データベースビュー

テーブルフィールド

概要
フィールド検証

基本タイプ

一行テキスト
複数行テキスト
携帯電話番号
メールアドレス
URL
整数
数値
パーセンテージ
パスワード
カラー
アイコン

選択タイプ

チェック
ドロップダウン(単一選択)
ドロップダウン(複数選択)
ラジオボタン
チェックボックス

マルチメディア

Markdown
Markdown (Vditor)
リッチテキスト
添付ファイル(リレーション)
添付ファイル(URL)

日付 & 時刻

概要
日時(タイムゾーン付き)
日時(タイムゾーンなし)
Unix タイムスタンプ
日付(時刻なし)
時刻

ジオメトリ

ポイント
ライン
円
ポリゴン

高度なタイプ

UUID
Nano ID
並び順
計算式
自動採番
JSON
データテーブル選択
暗号化

システム情報

作成日時
最終更新日時
作成者
最終更新者
スペース
テーブルOID

リレーションタイプ

概要
1対1
1対多
多対1
多対多
多対多(配列)

開発

概要
Next Page概要
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#HTTP API

添付ファイルフィールドとファイルコレクションのファイルアップロードは、どちらもHTTP APIで処理できます。添付ファイルやファイルコレクションが利用するストレージエンジンによって、呼び出し方法がそれぞれ異なります。

#サーバーサイドアップロード

S3、OSS、COSなど、プロジェクトに組み込まれているオープンソースのストレージエンジンの場合、HTTP APIはUIのアップロード機能と同じように呼び出され、ファイルはすべてサーバーサイドでアップロードされます。APIを呼び出す際には、ユーザーログインに基づくJWTトークンをAuthorizationリクエストヘッダーに含める必要があります。含めないとアクセスが拒否されますのでご注意ください。

#添付ファイルフィールド

添付ファイルコレクション(attachments)リソースに対してcreate操作を実行し、POSTリクエストを送信してfileフィールドからバイナリコンテンツをアップロードします。この呼び出し後、ファイルはデフォルトのストレージエンジンにアップロードされます。

curl -X POST \
    -H "Authorization: Bearer <JWT>" \
    -F "file=@<path/to/file>" \
    "http://localhost:3000/api/attachments:create"

異なるストレージエンジンにファイルをアップロードしたい場合は、attachmentFieldパラメーターを使って、所属するコレクションフィールドに設定されているストレージエンジンを指定できます(設定されていない場合は、デフォルトのストレージエンジンにアップロードされます)。

curl -X POST \
    -H "Authorization: Bearer <JWT>" \
    -F "file=@<path/to/file>" \
    "http://localhost:3000/api/attachments:create?attachmentField=<collection_name>.<field_name>"

#ファイルコレクション

ファイルコレクションにアップロードすると、自動的にファイルレコードが生成されます。ファイルコレクションリソースに対してcreate操作を実行し、POSTリクエストを送信してfileフィールドからバイナリコンテンツをアップロードしてください。

curl -X POST \
    -H "Authorization: Bearer <JWT>" \
    -F "file=@<path/to/file>" \
    "http://localhost:3000/api/<file_collection_name>:create"

ファイルコレクションへのアップロードでは、ストレージエンジンを指定する必要はありません。ファイルは、そのコレクションに設定されているストレージエンジンにアップロードされます。

#クライアントサイドアップロード

商用プラグイン S3-Pro を通じて提供されるS3互換のストレージエンジンの場合、HTTP APIでのアップロードはいくつかのステップに分けて呼び出す必要があります。

#添付ファイルフィールド

  1. ストレージエンジン情報の取得

    ストレージコレクション(storages)に対してgetBasicInfo操作を実行し、ストレージ名(storage name)を含めてストレージエンジンの設定情報をリクエストします。

    curl 'http://localhost:13000/api/storages:getBasicInfo/<storage_name>' \
      -H 'Authorization: Bearer <JWT>'

    返されるストレージエンジン設定情報の例:

    {
      "id": 2,
      "title": "xxx",
      "name": "xxx",
      "type": "s3-compatible",
      "rules": { ... }
    }
  2. サービスプロバイダーからプリサイン情報(Presigned URL)を取得

    fileStorageS3リソースに対してcreatePresignedUrl操作を実行し、POSTリクエストを送信してbodyにファイル関連情報を含め、プリサインアップロード情報を取得します。

    curl 'http://localhost:13000/api/fileStorageS3:createPresignedUrl' \
      -X POST \
      -H 'Accept: application/json, text/plain, */*' \
      -H 'Authorization: Bearer <JWT>' \
      -H 'Content-Type: application/json' \
      --data-raw '{"name":<name>,"size":<size>,"type":<type>,"storageId":<storageId>,"storageType":<storageType>}'

    注:

    • name: ファイル名
    • size: ファイルサイズ(バイト単位)
    • type: ファイルのMIMEタイプです。参考:一般的なMIMEタイプ
    • storageId: ストレージエンジンのID(ステップ1で返されるidフィールド)
    • storageType: ストレージエンジンのタイプ(ステップ1で返されるtypeフィールド)

    リクエストデータの例:

    --data-raw '{"name":"a.png","size":4405,"type":"image/png","storageId":2,"storageType":"s3-compatible"}'

    取得したプリサイン情報のデータ構造は以下の通りです。

    {
      "putUrl": "https://xxxxxxx",
      "fileInfo": {
        "key": "xxx",
        "title": "xxx",
        "filename": "xxx",
        "extname": ".png",
        "size": 4405,
        "mimetype": "image/png",
        "meta": {},
        "url": ""
      }
    }
  3. ファイルのアップロード

    返されたputUrlを使ってPUTリクエストを実行し、ファイルをbodyとしてアップロードします。

    curl '<putUrl>' \
      -X 'PUT' \
      -T <file_path>

    注:

    • putUrl: 前のステップで返されたputUrlフィールド
    • file_path: アップロードするローカルファイルのパス

    リクエストデータの例:

    curl 'https://xxxxxxx' \
     -X 'PUT' \
     -T /Users/Downloads/a.png
  4. ファイルレコードの作成

    アップロードが成功したら、添付ファイルコレクション(attachments)リソースに対してcreate操作を実行し、POSTリクエストを送信してファイルレコードを作成します。

    curl 'http://localhost:13000/api/attachments:create?attachmentField=<collection_name>.<field_name>' \
      -X POST \
      -H 'Accept: application/json, text/plain, */*' \
      -H 'Authorization: Bearer <JWT>' \
      -H 'Content-Type: application/json' \
      --data-raw '{"title":<title>,"filename":<filename>,"extname":<extname>,"path":"","size":<size>,"url":"","mimetype":<mimetype>,"meta":<meta>,"storageId":<storageId>}'

    data-rawの依存データについて:

    • title: 前のステップで返されたfileInfo.titleフィールド
    • filename: 前のステップで返されたfileInfo.keyフィールド
    • extname: 前のステップで返されたfileInfo.extnameフィールド
    • path: デフォルトは空
    • size: 前のステップで返されたfileInfo.sizeフィールド
    • url: デフォルトは空
    • mimetype: 前のステップで返されたfileInfo.mimetypeフィールド
    • meta: 前のステップで返されたfileInfo.metaフィールド
    • storageId: ステップ1で返されたidフィールド

    リクエストデータの例:

      --data-raw '{"title":"ATT00001","filename":"ATT00001-8nuuxkuz4jn.png","extname":".png","path":"","size":4405,"url":"","mimetype":"image/png","meta":{},"storageId":2}'

#ファイルコレクション

最初の3つのステップは添付ファイルフィールドへのアップロードと同じです。ただし、4番目のステップでは、ファイルコレクションリソースに対してcreate操作を実行し、POSTリクエストを送信してbodyにファイル情報をアップロードすることで、ファイルレコードを作成する必要があります。

curl 'http://localhost:13000/api/<file_collection_name>:create' \
  -H 'Authorization: Bearer <JWT>' \
  -H 'Content-Type: application/json' \
  --data-raw '{"title":<title>,"filename":<filename>,"extname":<extname>,"path":"","size":<size>,"url":"","mimetype":<mimetype>,"meta":<meta>,"storageId":<storageId>}'

data-rawの依存データについて:

  • title: 前のステップで返されたfileInfo.titleフィールド
  • filename: 前のステップで返されたfileInfo.keyフィールド
  • extname: 前のステップで返されたfileInfo.extnameフィールド
  • path: デフォルトは空
  • size: 前のステップで返されたfileInfo.sizeフィールド
  • url: デフォルトは空
  • mimetype: 前のステップで返されたfileInfo.mimetypeフィールド
  • meta: 前のステップで返されたfileInfo.metaフィールド
  • storageId: ステップ1で返されたidフィールド

リクエストデータの例:

  --data-raw '{"title":"ATT00001","filename":"ATT00001-8nuuxkuz4jn.png","extname":".png","path":"","size":4405,"url":"","mimetype":"image/png","meta":{},"storageId":2}'