Upload API

最終更新: 2026年7月3日

Upload はファイルをアップロードして作成する一時リソースです。Media を作成する前の最初のステップで、ファイルをアップロードするとレスポンスとして Upload が1件返り、この Upload の情報をもとに Media を作成します。Media の作成は CMA(Weegloo User)または ACMA(Service User)で行われ、このページの範囲外です。

Upload は一時リソースです。作成から24時間が経過すると失効し(expiresAt)、その間に Media へ変換しなければ消滅します。Upload には公開やバージョンの概念がありません(versionstatuspublish 属性がありません)。本文フィールドもなく、システム属性 sys のみを持ちます。ベース URL は https://upload.weegloo.com/v1 で、すべてのリクエストに Upload を認証する Bearer トークンが必要です。

リソース構造

以下は、アパレルショップの商品写真(タンブラー画像)を1つの Space にアップロードした Upload のレスポンスです。sys のみがあり、その中に ownerexpiresAtsize などのキーが含まれます。

{
  "sys": {
    "id": "4bgMfu7cFGYDRQn4jdqFI8tkOWKZIm",
    "type": "Upload",
    "owner": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-18T04:48:44.057Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-18T04:48:44.057Z",
    "expiresAt": "2026-06-19T04:48:44.057Z",
    "size": 50847
  }
}

主なキー:

  • sys.id: Upload の一意な識別子です。Media を作成する際にこの値を渡します。単一取得と削除パスの {uploadId} にも入ります。
  • sys.owner: この Upload が属する場所を指す参照です。targetTypeSpace または Organization です(下記 Space と Organization のコンテキスト を参照)。
  • sys.expiresAt: 失効時刻です。createdAt を基準に24時間後で、この時刻を過ぎると Upload が消滅します。
  • sys.size: アップロードしたファイルのサイズです(バイト)。上記の例は 50847 バイトです。

システム属性 (sys)

すべての Upload はシステム属性を sys オブジェクトに格納します。ownercreatedByupdatedByRefer の形({ "sys": { "id", "type": "Refer", "targetType" } })で入ります。

属性説明
idstringリソースの一意な識別子。
typestringリソースの種類。Upload は常に "Upload"
ownerReferこの Upload が属する場所。targetTypeSpace または Organization
createdByRefer<User>作成したユーザー。
createdAtstring (date-time)作成時刻。
updatedByRefer<User>最後に更新したユーザー。
updatedAtstring (date-time)最終更新時刻。
expiresAtstring (date-time)失効時刻。createdAt を基準に24時間後で、過ぎると Upload が消滅します。
sizeinteger (int64)アップロードしたファイルのサイズ(バイト)。

上記9個の属性はすべてレスポンスに常に含まれます。ContentContent Typesys にある versionstatuspublishUpload にはありません。Upload は公開したりバージョンを付けたりするリソースではなく、Media を作成するための使い捨ての材料だからです。owner は他のリソースの space のように1種類だけを指すのではなく、targetType に応じて Space または Organization を指します。

Space と Organization のコンテキスト

Upload は2つのコンテキストで作成でき、コンテキストによってパスと sys.owner が変わります。

コンテキストパスの基準sys.owner.sys.targetType用途
Space/spaces/{spaceId}/uploadsSpace商品写真のように Media の材料となるファイル。
Organization/organizations/{organizationId}/uploadsOrganization組織アイコンのような組織単位の資産。

Space コンテキストの Upload は、その SpaceMedia を作成する材料です。Organization コンテキストの Upload は、組織アイコンのように組織へ直接使われるファイルをアップロードする際に使用します。いずれの場合もレスポンスとして返るリソース構造は同じで、sys.ownertargetType 値のみが異なります。

アップロードの方式: multipart と binary

ファイルをアップロードする POST リクエストには2つの方式があります。どちらでもレスポンスとして返るのは同じ Upload リソースです。

multipart 方式 はリクエスト本文を multipart/form-data で送信します。ファイルは名前が file のフォームフィールドに格納します。ブラウザのファイル選択入力からそのままアップロードする場合のように、フォームデータで送信する状況に適しています。

binary 方式 はファイルの生のバイトをリクエスト本文にそのまま格納します。本文のメディアタイプ(Content-Type)に制約はなく(通常は application/octet-stream を使います)、Space コンテキストでは Content-Length ヘッダーに本文のバイト長を併せて送信する必要があります。フォーム構造なしでファイルのバイトのみを送信するサーバー側のコードなどに適しています。

API

以下のすべてのエンドポイントの基準 URL は https://upload.weegloo.com/v1 で、Authorization ヘッダーに Upload を認証する Bearer トークンが必要です。まず Space コンテキストの4個、続いて Organization コンテキストの4個を扱います。

  • Media: アップロードした Upload で Media を作成するリクエスト形式。
  • Media(概念): ファイル資産をコンテンツスタジオで扱う方法。