Difyサーバーを運用する上で、ローカルのWindows PCとLinuxサーバーとの間でファイルをやり取りする作業は避けて通れません。例えば、Difyに学習させるナレッジベース(PDF、CSVなど)のアップロードや、サーバーで問題が発生した際のログファイルのダウンロードなどです。
この記事では、Windowsで定番のターミナルソフト「TeraTerm(テラターム)」を使い、安全かつ効率的にファイル転送を行う方法を解説します。
【重要】Telnetではなく、SSH (Secure Shell) を使います
古い情報では「Telnet」という言葉が出てくることがありますが、Telnetは通信が暗号化されず、パスワードやデータが傍受される危険性があるため、現在では絶対に使用してはいけません。
TeraTermは、通信をすべて暗号化する安全なプロトコルである SSH (Secure Shell) に標準で対応しています。Difyサーバーへの接続やファイル転送は、必ずSSH(SCP)を使用してください。
方法1: Windows PC → Linuxサーバー へのファイル転送 (アップロード)
Difyにナレッジベースのファイルをアップロードする際などに使います。TeraTermのドラッグ&ドロップ機能を使うのが最も簡単です。
- Windowsのエクスプローラーから、アップロードしたいファイル(例:
faq.csv)を掴みます。 - ファイルを開いているTeraTermのウィンドウ上にドラッグ&ドロップします。
- 「Tera Term: ファイル ドラッグ&ドロップ」というウィンドウが表示されます。
- 「SCP:」の欄に、Linuxサーバー側の保存先ディレクトリ(例:
/home/your-user/dify-knowledge/)を入力します。~(ホームディレクトリ)も使えます。
- 「SCP」ボタンをクリックすると、転送が開始されます。
方法2: Linuxサーバー → Windows PC へのファイル転送 (ダウンロード)
Difyのログファイルや設定ファイルをローカルPCにダウンロードする際に使います。
- TeraTermのメニューバーから「ファイル(F)」→「SSH SCP…」を選択します。
- 「TTSSH: Secure File Copy」というウィンドウが表示されます。
- ウィンドウ下部の「From:」に、ダウンロードしたいLinuxサーバー上のファイルパス(例:
/var/log/dify/api.log)を正確に入力します。 - 「To:」に、保存したいWindows PC側のフォルダとファイル名(例:
C:\Users\YourName\Downloads\api.log)を入力します。(右の...ボタンから選択も可能です) - 「Receive」ボタンをクリックすると、ダウンロードが開始されます。
【上級TIPS】readlink -f コマンドでファイルパスを瞬時に取得する
方法2で最も面倒なのが、「From:」にLinuxサーバー上の絶対パス(/ から始まる完全なパス)を入力する点です。ファイルが深い階層にあると、パスを調べるのが大変です。
そんな時、readlink コマンドが非常に役立ちます。
readlink -f [ファイル名] は、指定したファイルの絶対パスを一発で表示してくれるコマンドです。
実際の使用例
Difyのログファイル api.log をダウンロードしたいが、正確なパスがわからないとします。
# まず、目的のファイルがあるディレクトリに移動する
$ cd /opt/dify/logs/api
# lsでファイル名を確認
$ ls
api.log worker.log
# readlink -f で api.log の絶対パスを表示させる
$ readlink -f api.log
/opt/dify/logs/api/api.log
あとは、表示された /opt/dify/logs/api/api.log という文字列をマウスでコピーし、「SSH SCP」ウィンドウの「From:」欄に貼り付けるだけです。
cd と ls でファイルを探し、readlink -f でパスを確定させてコピーする。この流れを覚えれば、Linuxサーバーからのファイルダウンロードが格段に速く、正確になります。


コメント