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

目次

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

一時保管領域にファイルをアップロードします。
一時保管領域とは、この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日間で削除されます。
  • 一時保管領域のファイルも、ディスク使用量に含まれます。