ファイルをアップロードする

目次

ファイルをアップロードする

一時保管領域にファイルをアップロードします。
一時保管領域とは、この API を利用してアップロードしたファイルが一時的に保管される場所です。

  • アップロードしたファイルのファイルキーを他の API で利用することで、一時保管領域のファイルをレコードやスペースなどに添付できます。
  • 一度にアップロードできるファイルは、1 つです。
  • レコードを取得する API で取得できるファイルキーは、ファイルアップロードには利用できません。

URL

通常のアプリ
https://sample.cybozu.com/k/v1/file.json
ゲストスペースのアプリ
https://sample.cybozu.com/k/guest/GUEST_SPACE_ID/v1/file.json

HTTP メソッド

POST

必要なアクセス権

なし

アップロードしたファイルを添付するときのアクセス権は、レコードを登録/更新する API など、ファイルの添付に利用する API で必要なアクセス権を参照してください。

リクエスト

  • リクエストは multipart/form-data 形式で送信します。 詳細は RFC 1867、RFC 7578 を参照してください。
  • 「Content-Disposition」内の name には「file」、filename にはファイル名を指定してください。
    日本語ファイル名の場合は UTF-8 でエンコードした内容を指定してください。
パラメーター

なし

リクエストの例
URL

https://sample.cybozu.com/k/v1/file.json

ヘッダー
1
2
3
4
{
  "X-Cybozu-API-Token": "API_TOKEN",
  "Content-Type": "multipart/form-data"
}

リクエストヘッダーの詳細は kintone REST API の共通仕様 を参照してください。

HTTP ヘッダー情報
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
POST /k/v1/file.json HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-API-Token: TOKEN
Content-Type: multipart/form-data; boundary=---------------------------bee48a285354
Content-Length: 188
-----------------------------bee48a285354
Content-Disposition: form-data; name="file"; filename="sample.txt"
Content-Type: text/plain

test
-----------------------------bee48a285354--

レスポンス

プロパティ
プロパティ名 説明
fileKey 文字列 アップロードされたファイルのファイルキー
ファイルキーは、ファイルの添付に利用する API で添付ファイルフィールドの値として使用します。
詳細は フィールド形式 を参照してください。
レスポンスの例
1
2
3
{
  "fileKey": "c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6"
}

サンプルコード

curl を使ったリクエスト
1
2
3
curl -X POST 'https://sample.cybozu.com/k/v1/file.json' \
  -H 'X-Cybozu-API-Token: API_TOKEN' \
  -F 'file=@sample.txt'
Fetch API (External link) を使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
const blob = new Blob(['テストファイルです'], {
  type: 'text/plain',
});
const formData = new FormData();
// ファイルをアップロードする API は、POST メソッドのため、 CSRF トークンを設定する
formData.append('__REQUEST_TOKEN__', kintone.getRequestToken());
formData.append('file', blob, 'test.txt');

const headers = {
  'X-Requested-With': 'XMLHttpRequest',
};
const resp = await fetch('/k/v1/file.json', {
  method: 'POST',
  headers,
  body: formData,
});
const respData = await resp.json();
console.log(respData);

ファイルキー

ファイルのアップロードやダウンロードで使用する「ファイルキー」は、次の 2 種類あります。

  • ファイルをアップロードする API のレスポンスとして取得するファイルキー
    • 例:c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6
    • 一時保管領域に保存されたファイルを、添付ファイルフィールドなどに関連付けるときに使用します。
    • この API で取得できるファイルキーです
  • レコードを取得する API などで取得する、添付ファイルのファイルキー
    • 例:201202061155587E339F9067544F1A92C743460E3D12B3297
    • 添付ファイルフィールドなどから、ファイルをダウンロードするときに使用します。
    • この API で取得できるファイルキーではありません。

制限事項

  • この API は、 kintone REST API リクエストを送信する API では実行できません。
  • 一時保管領域に保存されたファイルは、レコードやスペースなどに添付されない場合、3 日間で削除されます。
  • 一時保管領域のファイルも、ディスク使用量に含まれます。