生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

ローカルファイルの読み書き自動化!n8nのRead/Write Binary Fileノード実践ガイド

日々の業務で、ファイルをダウンロードして特定のフォルダに保存したり、CSVファイルを開いて内容を確認したり、といった手作業に時間を取られていませんか。

単純な作業ほど、自動化して効率を上げたいものですよね。

実は、iPaaSツール「n8n」を使えば、そうしたローカルファイルの操作を驚くほど簡単に自動化できます。

その中心的な役割を担うのが、今回ご紹介する「Read/Write Binary File」ノードです。

この記事を読めば、ローカルに存在する画像やドキュメント、CSVファイルなどを自在に読み書きするワークフローを構築できるようになり、あなたの業務効率は飛躍的に向上するでしょう。

Read/Write Binary Fileノードの基本をマスターしよう

まずは、このノードの基本的な役割と設定方法から理解を深めていきましょう。「Read Binary File」と「Write Binary File」は、名前の通りファイルの「読み込み」と「書き込み」を専門とするノードです。これらを使いこなすことが、ローカルファイル自動化の第一歩です。

「Read Binary File」でファイルを読み込む

このノードは、指定したパスにあるファイルを「バイナリデータ」という形式で読み込むために使用します。バイナリデータとは、コンピューターが直接理解できるデータ形式のことで、画像、PDF、Excelファイルなど、あらゆるファイルがこの形式で扱われます。

設定は非常にシンプルです。

  • File Path: 読み込みたいファイルの場所を絶対パス(例: /Users/yoshikazu/documents/report.csv)または相対パスで指定します。2026年1月時点の情報ですが、n8nをどの環境(Desktop版、Cloud版、Docker版など)で動かしているかによってパスの指定方法が異なる場合があるため、注意が必要です。

このノードを実行すると、後続のノードで{{ $json.binary }}のような式(Expression)を使って、読み込んだファイルデータにアクセスできるようになります。

「Write Binary File」でファイルを書き込む

こちらは、前のノードから受け取ったバイナリデータを、指定した場所に新しいファイルとして保存するためのノードです。Webサイトからダウンロードした画像や、ワークフロー内で生成したレポートなどをPCに保存する際に活躍します。

主な設定項目は以下の通りです。

  • File Path: 保存したいファイルのパスとファイル名を指定します。存在しないフォルダを指定するとエラーになるため、事前にフォルダを作成しておくか、後述するオプションを有効にしましょう。
  • Binary Data: 書き込みたいバイナリデータを指定します。通常は、前のノードから受け取ったデータを参照する式(例: {{ $binary.data }})を入力します。
  • Options:
    • Append: オンにすると、既存のファイルにデータを追記します。ログファイルを作成する際などに便利です。
    • Create Dir: オンにすると、指定したパスのフォルダが存在しない場合に自動で作成してくれます。ほとんどの場合でオンにしておくと良いでしょう。

これらの基本を組み合わせるだけで、ファイルの移動やコピーといった基本的な操作が自動化できます。

実践的なワークフロー例:Webから画像を自動で保存する

基本を理解したところで、より実践的な使い方を見ていきましょう。ここでは、指定したURLから画像をダウンロードし、日付を付けたファイル名で特定のフォルダに自動保存するワークフローを作成します。

ワークフローの全体像

この自動化は、主に3つのノードを組み合わせることで実現します。

  1. Scheduleノード: 「毎日午前9時に実行する」といったように、ワークフローを定期的に起動させます。
  2. HTTP Requestノード: 指定したURLにアクセスし、画像データをダウンロードします。
  3. Write Binary Fileノード: ダウンロードした画像データを、ローカルフォルダにファイルとして書き出します。

HTTP Requestノードの設定ポイント

このワークフローの鍵となるのがHTTP Requestノードの設定です。画像やPDFなどのファイルを取得する場合、以下の設定が重要になります。

  • URL: ダウンロードしたい画像のURL(例: `https://example.com/image.jpg`)を指定します。
  • Response Format: ここを「File」に設定します。これにより、n8nはURLの先にあるコンテンツをバイナリデータとして取得しようとします。

この設定だけで、指定したURLから画像データを取得し、後続のノードに渡す準備が整います。

動的なファイル名で整理上手に

次に、Write Binary Fileノードで、取得したデータをファイルとして保存します。毎回同じファイル名で上書きしてしまっては意味がないので、Expression(式)を使って動的にファイル名を生成しましょう。

File Pathに以下のような式を入力します。

/Users/yoshikazu/Pictures/downloads/{{ new Date().toISOString().split('T')[0] }}_{{ $binary.fileName }}

この式は、以下のような意味を持ちます。

  • {{ new Date().toISOString().split('T')[0] }}: ワークフロー実行日の日付(例: `2026-01-15`)を生成します。
  • {{ $binary.fileName }}: HTTP Requestノードが取得した元のファイル名(例: `image.jpg`)を参照します。

結果として、ファイルは「/Users/yoshikazu/Pictures/downloads/2026-01-15_image.jpg」のような、日付と元のファイル名が組み合わさった名前で保存され、整理が非常に楽になります。

応用編:CSVファイルを読み込んでデータを処理する

Read/Write Binary Fileノードは、CSVファイルのようなテキストベースのデータと組み合わせることで、さらに真価を発揮します。ローカルに保存された売上レポート(CSV形式)を読み込み、内容を処理してGoogleスプレッドシートに転記する、といった複雑な自動化も可能です。

ワークフローの全体像

この処理は、少し多くのノードを連携させる必要があります。

  1. Read Binary Fileノード: ローカルにあるCSVファイルを読み込みます。
  2. Spreadsheet Fileノード: 読み込んだCSVデータを、n8nが扱いやすいJSON形式に変換します。
  3. Item Listsノード: 特定の条件(例: 売上1万円以上)でデータを絞り込んだり、必要な列だけを抽出したりします。
  4. Google Sheetsノード: 加工したデータを指定のスプレッドシートに書き込みます。

CSVからJSONへの変換テクニック

Read Binary FileノードでCSVファイルを読み込んだだけでは、それはまだ単なる「テキストの塊」です。このままではデータを行や列として認識できません。そこで「Spreadsheet File」ノードの出番です。

このノードにCSVのバイナリデータを渡すと、ヘッダー行をキーとしたJSON形式のデータに変換してくれます。これにより、「顧客名」や「売上金額」といった列単位でのデータ操作が可能になります。

独自の視点: 日本語を含むCSVファイルを扱う際、文字コードの違い(特にShift_JIS)で文字化けすることがあります。その場合は、Read Binary FileノードとSpreadsheet Fileノードの間に「Move Binary Data」ノードを挟み、`Convert to/from`オプションで文字コードをUTF-8に変換することで解決できる場合があります。これはn8nで日本語データを扱う上で非常に重要なテクニックです。

トラブルシューティングとベストプラクティス

非常に強力なRead/Write Binary Fileノードですが、いくつかの注意点もあります。ここでは、よくあるエラーとその対処法、そしてパフォーマンスを最大限に引き出すためのヒントをご紹介します。

よくあるエラーとその原因

  • ERROR: File not found: 最もよく見るエラーです。原因のほとんどは「File Path」の指定ミスです。絶対パスが正しいか、n8nを実行している環境からそのパスにアクセスできるか(Docker環境などでは特に注意)を再確認しましょう。
  • ERROR: Permission denied: 指定したフォルダへの書き込み権限がない場合に発生します。n8nを実行しているユーザーに適切な権限が付与されているか、OSレベルで確認が必要です。
  • ERROR: The property ‘binary’ does not exist: Write Binary Fileノードでこのエラーが出た場合、前のノードがバイナリデータを正しく渡せていないことを意味します。HTTP RequestノードのResponse Formatが「File」になっているかなど、前段のノード設定を見直しましょう。

パフォーマンスを意識した使い方

数GBにもなるような非常に大きなファイルを扱う場合、ワークフローを実行しているマシンのメモリを大量に消費し、動作が不安定になる可能性があります。大きなファイルを扱う際は、一度にすべてを処理しようとせず、ファイルを分割したり、n8nのバッチ処理機能を活用したりすることを検討しましょう。

n8nの基本的な考え方や、より高度なワークフローの構築方法については、n8nの全体像を網羅的に解説したn8n完全ガイド記事で詳しく説明しています。ぜひこちらも併せてご覧ください。

まとめ

今回は、n8nの「Read/Write Binary File」ノードを使ったローカルファイルの自動操作について、基本的な使い方から実践的な応用例までを解説しました。

このノードを使いこなせれば、これまで手作業で行っていたファイルのダウンロード、リネーム、保存、データ抽出といった作業を完全に自動化できます。これにより、あなたは退屈なルーチンワークから解放され、より付加価値の高い創造的な業務に集中できるようになるはずです。

n8nが持つ可能性は、この記事で紹介しただけに留まりません。あなたのアイデア次第で、あらゆる業務を効率化するパワフルなパートナーとなり得ます。

ぜひこの機会に、n8nを始めて、あなたのビジネスプロセスに自動化革命を起こしてみませんか?