はじめに
前回までに、cli-kintoneを使ったデータの入出力の方法について説明しました。
今回は、添付ファイルのダウンロードとアップロードをする方法を学んでいきましょう。
データのエクスポート
で準備した、顧客リストアプリのレコードを使用していきます。
前回の記事でレコードを削除している場合は、サンプルデータを再度追加してください。
あらかじめ、APIトークンに「レコード閲覧」「レコード追加」「レコード編集」のアクセス権がついていることを確認してください。
添付ファイルをダウンロードする
顧客リストアプリで準備したデータを使って、レコードの添付ファイルをダウンロードしてみましょう。
レコードに添付されたファイルをダウンロードするには、データのエクスポートをする場合と同じでrecord export
を指定します。
さらに--attachments-dir
オプションで、ダウンロード先のディレクトリ名を指定します。
指定するパスは、実行している場所からの相対パスまたは絶対パスになります。
ダウンロード先のディレクトリ名を「download」とした場合は、次のように書きます。
|
|
実行すると、「download」ディレクトリ内に「フィールドコード - レコード番号」という名前のディレクトリが作成され、その中に添付ファイルがダウンロードされます。
|
|
テーブル内の添付ファイルをダウンロードする場合
テーブル内の添付ファイルをダウンロードする場合、「フィールドコード - レコード番号 - テーブルの行番号」という名前のディレクトリ内に添付ファイルがダウンロードされます。
テーブルの行番号は、1行目が0で、2行目は1となります。
このように、行番号は0から始まる数字で発番されます。
以下は添付ファイルのフィールドコードをtable_logo
に設定した場合の、ディレクトリ構成の例になります。
|
|
添付ファイルをアップロードする
添付ファイルのあるレコードを追加する
次に、添付ファイルが複数あるレコードを新規に追加してみましょう。
-
添付ファイルを配置します。
「upload」という名前のディレクトリを作成し、2つの添付ファイルを配置します。
1 2 3 4
works # cli-kintone.exeがあるディレクトリ └── upload ├── img_01.png └── img_02.png # 複数のファイルを指定する場合は同じ階層に配置
-
CSVにファイル名を記載します。
添付ファイルフィールドの値に、ファイル名を記載します。
1 2
"company","company_logo" "サイボウズ株式会社","img_01.png"
今回の例では、1つのフィールドに2つのファイルを追加します。
複数のファイルを追加する場合は、ファイル名を改行区切りで記載します。1 2 3
"company","company_logo" "サイボウズ株式会社","img_01.png img_02.png"
-
コマンドを実行します。
添付ファイルをアップロードするには、データのインポートをする場合と同じで
record import
を指定します。
さらに--attachments-dir
オプションで、アップロードするファイルを配置したディレクトリを指定します。
指定するパスは、実行している場所からの相対パスまたは絶対パスになります。今回の例では、次のように書きます。
1
cli-kintone.exe record import --app 299 --base-url https://sample.cybozu.com --api-token APIトークン --encoding sjis --file-path ./sample.csv --attachments-dir ./upload
正常に実行されると、追加されたレコードの件数が表示されます。
1 2
[2023-08-09T06:20:31.585Z] INFO: Starting to import records... [2023-08-09T06:20:32.136Z] INFO: Imported 1 records successfully
-
アプリで画面の確認をしてみましょう。
- 新規に追加したレコードの詳細画面を開きます。
- 2つの添付ファイルが登録された、新規のレコードを確認できます。
添付済みのファイルを更新する
先ほど追加したレコードの「img_02.png」を「img_03.png」に更新してみましょう。
-
添付ファイルを配置します。
作成済みの「upload」ディレクトリの中に、更新用の添付ファイルを配置します。
1 2 3 4 5
works # cli-kintone.exeがあるディレクトリ └── upload ├── img_01.png ├── img_02.png └── img_03.png # 更新用の添付ファイル
-
CSVにファイル名を記載します。
レコードを更新する場合は、更新のキーとなるフィールドのフィールドコードを指定する必要があります。今回の例では、レコード番号をキーに指定します。
添付ファイルフィールドの値には、更新したいファイル名「img_03.png」を記載します。
また、更新対象ではないファイル名「img_01.png」も記載する必要があります。1 2 3
"id","company","company_logo" "22","サイボウズ株式会社","img_01.png img_03.png"
-
コマンドを実行します。
コマンドは、添付ファイルのあるレコードを追加する場合と同じですが、
--update-key
オプションで、更新のキーとなるフィールドのフィールドコードを指定する必要があります。1
cli-kintone.exe record import --app 299 --base-url https://sample.cybozu.com --api-token APIトークン --encoding sjis --file-path ./sample.csv --update-key "id" --attachments-dir ./upload
正常に実行されると、更新されたレコードの件数が表示されます。
1 2 3
[2023-08-09T07:10:50.026Z] INFO: Preparing to import records... [2023-08-09T07:10:50.163Z] INFO: Starting to import records... [2023-08-09T07:10:50.641Z] INFO: Imported 1 records successfully
-
アプリで画面の確認をしてみましょう。
- 添付ファイルを更新したレコードの詳細画面を開きます。
- 2番目の添付ファイルが更新されていることを確認できます。
添付済みのファイルを削除する
レコードの添付ファイルを削除してみましょう。
-
CSVにファイル名を記載します。
添付ファイルを一括削除する場合は、添付ファイルフィールドの値に空文字を指定します。
1 2
"id","company","company_logo" "22","サイボウズ株式会社",""
-
コマンドを実行します。
コマンドは更新時と同じで、次のように書きます。
1
cli-kintone.exe record import --app 299 --base-url https://sample.cybozu.com --api-token APIトークン --encoding sjis --file-path ./sample.csv --update-key "id" --attachments-dir ./upload
正常に実行されると、更新されたレコードの件数が表示されます。
1 2 3
[2023-08-09T07:28:25.528Z] INFO: Preparing to import records... [2023-08-09T07:28:25.695Z] INFO: Starting to import records... [2023-08-09T07:28:25.848Z] INFO: Imported 1 records successfully
添付ファイルを一括削除する場合でも、
--attachments-dir
を指定してください。
フォルダーの中身は空でも問題ありません。 -
アプリで画面の確認をしてみましょう。
- 添付ファイルを削除したレコードの詳細画面を開きます。
- 指定したレコードの添付ファイルが削除されていることを確認できます。
おわりに
今回は、cli-kintoneを使って、添付ファイルのダウンロードとアップロードをする方法を学びました。
次回は、 データのバックアップ の方法について学びましょう。
このTipsは、cli-kintone Ver 1.8.0と2023年8月版kintoneで動作を確認しています。