n8nのWrite Binary Fileノードのパラメータ設定方法について詳しく解説!
WriteBinaryFileノードの使い方について説明したいと思います。
WriteBinaryFileノードとは
バイナリデータのファイル書き込みが出来るノードです。
デスクトップアプリで実行すると自分のパソコンにファイルを書き込み(作成)出来ます。
バイナリデータとは
コンピュータが見て分かるデータのことです。
バイナリデータには文字のデータだけではなく、画像・音楽・動画・プログラムなど色んな種類がありますが、コンピュータが見て分かるデータになっているものがバイナリデータです。
このノードを使う時にバイナリデータに関して詳しく理解していないと使えないわけではないので安心してください。
扱えるデータ
下記のどちらかのデータを受け取る必要があります。
この2つは重要なので覚えておいてください。
- 前のノードからバイナリ形式のデータを受け取ってファイルに書き込む
- 受け取ったデータをバイナリ形式に変換してファイルに書き込む
※2の場合は変換する別のノードを使う必要があります。
設定するパラメータは少ないのでノード自体の設定は簡単です。
では早速パラメータの設定方法を見ていきましょう。
パラメータの説明
File Name
書き込み先のパス(ファイルの場所)を指定します。
意図しないファイルを変更してしまわないように絶対パスで指定することが推奨されています。
絶対パス(フルパス)とは
最上位に位置する場所からファイルの場所までを表したものを"パス"と言います。
絶対パスとは、最上位に位置する場所から指定ファイル(もしくはフォルダ)までの場所を表したものです。
どこから見ても同じ場所を示すので意図しない場所を指定することが無くなります。
現在いる場所からファイルの位置まで表したもので"相対パス"という指定方法もあります。
n8nを実行した時の「現在いる場所」とはn8nの実行するためのファイルがダウンロードされている場所になるため、相対パスは利用しない方が安心です。
絶対パス(フルパス)を取得する方法
●windowsの場合
場所を知りたいフォルダやファイルを「shift+右クリック」すると「パスのコピー」と出てくるので選択します。
「Ctrl+V」で貼り付けると「“C:\Users~”」のようにパスが取得出来るので「“”」の中に書かれているものが絶対パスです。
●macの場合
Finderで場所を知りたいフォルダやファイルを「右クリック」、メニューが表示されている状態で「alt(option)キー」を押下し続けると「パス名をコピー」という選択が表示されます。
指定例
例えばwindowsでデスクトップを指定する場合は「C:\Users\ユーザー名\Desktop」のようになるので"test.txt"というファイルを指定する場合は「C:\Users\ユーザー名\Desktop\test.txt」となります。
既存ファイルの場合は上書きされる
指定するファイル名と同じものがすでにある場合は上書きになります。
上書きされたファイルはもともと書かれていた内容が全て消えてしまうので気を付けましょう。
存在しないファイル名の場合はファイルが新規作成されます。
Property Name
前のノードから受け取るデータを指定します。
基本的に初期値の「data」で取得出来るので特に変更する必要はありません。
※HTTP Requestノードなど次のノードに渡すデータのPropertyNameを自由に変更出来るノードもあるので、 前のノードで変更した場合は指定したPropertyNameにする必要があるということだけ覚えておきましょう。
使い方例
どんな感じで作成されるか見てみます。
今回はデスクトップにn8nTestというフォルダを作って保存してみます。
ファイル書き込み
↓下記のような通常n8nで扱うデータを"test.txt"として保存する場合です。
データ形式の変換が必要
※先ほどの通常n8nで扱うデータはJSONというデータの形式なのでMoveBinaryDataノードを使ってバイナリに変換する必要があります。
デスクトップの完全パスとファイル名"test.txt"を指定します。
"test.txt"が作成されたことが確認できます。
ファイルを開くと内容が書き込まれていることが確認出来ます。
保存したデータは再度読み込んでn8nで使える
保存したファイルに書き込まれたデータは、Read Binary Fileノードで読み込んで再度n8nのワークフローで利用することが可能です。
エクセルやgoogleスプレッドシートに書き込みしたい場合
WriteBinaryFileノードの代わりにGoogleSheetsノードやSpreadsheetFileノードを利用すれば可能です。
画像書き込み
↓このn8nのロゴ画像を取得して"test.png"として保存する場合です。
デスクトップの完全パスとファイル名"test.png"を指定します。
※画像の取得にはHTTP Requestノードを利用しました。
画像が作成されたことが確認できます。
最後に
WriteBinaryFileノードはバイナリ形式のデータを渡すというのが少し難しいですが便利なノードなので使ってみてください。
WriteBinaryFileノードを使ったフローの説明も今後していきたいと思うので"こんな使い方してみたい"などあればご意見いただければと思います。
あなたのデジタル化も
掲載しませんか?