第5回 添付ファイル操作をしてみよう

フォローする

(著者:Cstap 瀧ヶ平 充) 

はじめに

今回は添付ファイルのダウンロード・アップロードの方法をご紹介します。

添付ファイルのダウンロード

添付ファイルは以下のコマンドでダウンロードできます。

-b の保存先の指定は必須で、存在しないディレクトリ名を指定した場合は、新たにディレクトリが作成されます。

ダウンロード先のディレクトリ構成

添付ファイルは下記のようなディレクトリ構成で保存されます。

▼ 通常の添付ファイルフィールドのファイル

▼ テーブル内の添付ファイルフィールドのファイル

ダウンロード時の注意点

一つのフィールドに同名の添付ファイルが複数ある場合、1ファイルしか保存されません。

テーブル内の添付ファイルフィールドの場合も同様で、同一行の一つのフィールドに同名ファイルが複数存在する場合も、1ファイルしか保存されません。

添付ファイルのダウンロード時はご注意ください。

添付ファイルのアップロード

-b オプションを付けた場合のCSVの添付ファイルフィールドの形式

CSVを用意するために、-b オプションを付けて出力を確認してみます。

今回は確認が目的なので、-c オプションで出力するフィールドを制限してわかりやすくしましょう。

保存先ディレクトリを save、添付ファイルのフィールドコードを Attachment とした場合、以下のようなCSVが出力されます。

この例では、IDが1のレコードには1-1.pngと1-2.png、IDが2のレコードには2-1.pngがそれぞれ登録されています。

添付ファイルの部分の出力は保存場所 save ディレクトリからの相対パスで表され、複数件登録されている場合は改行区切りでパスが表記されます。

テーブル内の添付ファイルフィールドの場合も、各行ごとに同様の形式で得られます。

添付ファイルを含むレコードの追加

それでは、前回まで使ってきた顧客リストアプリに新しいレコードを登録してみましょう。

STEP1 追加レコード用のCSVファイルを用意する

まずは添付ファイルを追加するために logo という名前でディレクトリを作成し、そこにファイル logo.pngを配置します。

ここまで完了したら次のような登録用CSVファイルを作成します。

複数添付ファイルを加える場合は「改行」で区切ってパスを書きます。

例えば logo_b.png  もあわせて追加する場合、以下のように記述します。

これを add_record_with_attachments.csv  として保存しましょう。

CSV作成時のポイント

cli-kintoneでエクスポートしたファイルへの追記でCSVを作成する場合、改行コードが統一されるようにCSVを作成してください。

複数の添付ファイルを扱う場合、改行コードが入り混じった状態で作成されたCSVはインポートに失敗することがあります。

cli-kintoneは改行コードが「CRLF」という形式になるようにCSVを保存しますが、コマンドプロンプトでリダイレクトして出力した場合、添付ファイル表記の改行部分だけ「LF」という形式になってしまうことがあります。

STEP2 レコードを追加する

添付ファイルとCSVの準備ができたら、次のコマンドを実行するとレコードを登録できます。

登録したレコードは以下のようになっていると思います。

before_update.png

前回までの記事をやってみた方は顧客リストアプリの会社名を重複禁止にしていると思うので、再度テストする場合は会社名を書き替えて行ってください。

添付ファイルを含むレコードの更新

今度は先程登録した添付ファイルを含むレコードを更新してみましょう。

STEP1 更新用CSVファイルを用意する

第3回 を参考に、更新用のCSVを用意します。

今回は添付ファイルを1つだけ追加してみます。

指定しなかった添付ファイルはすべて消されてしまうので、あらかじめcli-kintoneで画像を取得しておきましょう。

このとき、CSVも同時に保存しておくと書きやすいですね。

customerlist を添付ファイルの保存先に指定して実行した場合。

downloaddir.png

このようにディレクトリが作成され、レコードに登録されているロゴのファイルが保存されます。

downloadfiles.png

既存の添付ファイルは <保存先ディレクトリ>\Attachment-5  に保存されているため、 Attachment の項目にはこちらのディレクトリに新たに追加する添付ファイル Attachment-5\logo_c.png  を追加します。

その後、以下のようなCSVを update_record_with_attachments.csv  として作成します。

STEP2 レコードを更新する

レコードに logo_c.png  を追加したので、 <保存先ディレクトリ>\Attachment-5  に対応する logo_c.png  を追加してからコマンドを実行します。

更新が成功したら以下のような状態になっているかと思います。

after_update.png

今回の作業ディレクトリはこんな感じになっているかと思います。

directorystate.png

添付ファイルの操作、いかがでしたか?

ここまでくればcli-kintoneは完璧にできたのではないでしょうか。次回は実運用について触れていきます。お楽しみに。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。
Powered by Zendesk