Upload API
最終更新: 2026年7月3日
Upload はファイルをアップロードして作成する一時リソースです。Media を作成する前の最初のステップで、ファイルをアップロードするとレスポンスとして Upload が1件返り、この Upload の情報をもとに Media を作成します。Media の作成は CMA(Weegloo User)または ACMA(Service User)で行われ、このページの範囲外です。
Upload は一時リソースです。作成から24時間が経過すると失効し(expiresAt)、その間に Media へ変換しなければ消滅します。Upload には公開やバージョンの概念がありません(version、status、publish 属性がありません)。本文フィールドもなく、システム属性 sys のみを持ちます。ベース URL は https://upload.weegloo.com/v1 で、すべてのリクエストに Upload を認証する Bearer トークンが必要です。
リソース構造
以下は、アパレルショップの商品写真(タンブラー画像)を1つの Space にアップロードした Upload のレスポンスです。sys のみがあり、その中に owner、expiresAt、size などのキーが含まれます。
{
"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 が属する場所を指す参照です。targetTypeがSpaceまたはOrganizationです(下記 Space と Organization のコンテキスト を参照)。sys.expiresAt: 失効時刻です。createdAtを基準に24時間後で、この時刻を過ぎると Upload が消滅します。sys.size: アップロードしたファイルのサイズです(バイト)。上記の例は50847バイトです。
システム属性 (sys)
すべての Upload はシステム属性を sys オブジェクトに格納します。owner、createdBy、updatedBy は Refer の形({ "sys": { "id", "type": "Refer", "targetType" } })で入ります。
| 属性 | 型 | 説明 |
|---|---|---|
id | string | リソースの一意な識別子。 |
type | string | リソースの種類。Upload は常に "Upload"。 |
owner | Refer | この Upload が属する場所。targetType が Space または Organization。 |
createdBy | Refer<User> | 作成したユーザー。 |
createdAt | string (date-time) | 作成時刻。 |
updatedBy | Refer<User> | 最後に更新したユーザー。 |
updatedAt | string (date-time) | 最終更新時刻。 |
expiresAt | string (date-time) | 失効時刻。createdAt を基準に24時間後で、過ぎると Upload が消滅します。 |
size | integer (int64) | アップロードしたファイルのサイズ(バイト)。 |
上記9個の属性はすべてレスポンスに常に含まれます。Content や Content Type の sys にある version、status、publish は Upload にはありません。Upload は公開したりバージョンを付けたりするリソースではなく、Media を作成するための使い捨ての材料だからです。owner は他のリソースの space のように1種類だけを指すのではなく、targetType に応じて Space または Organization を指します。
Space と Organization のコンテキスト
Upload は2つのコンテキストで作成でき、コンテキストによってパスと sys.owner が変わります。
| コンテキスト | パスの基準 | sys.owner.sys.targetType | 用途 |
|---|---|---|---|
| Space | /spaces/{spaceId}/uploads | Space | 商品写真のように Media の材料となるファイル。 |
| Organization | /organizations/{organizationId}/uploads | Organization | 組織アイコンのような組織単位の資産。 |
Space コンテキストの Upload は、その Space の Media を作成する材料です。Organization コンテキストの Upload は、組織アイコンのように組織へ直接使われるファイルをアップロードする際に使用します。いずれの場合もレスポンスとして返るリソース構造は同じで、sys.owner の targetType 値のみが異なります。
アップロードの方式: 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個を扱います。
