はじめに
結局根本的な原因の特定には至らなかったのですが、試してみて改善できたことを書き留めておきます。
このエラーの解決策がなかなか見つからず、日本語の記事も少なくてハマりました。
発生状況
ホスト(接続元)がwindows、クライアント(接続先)がLinux。
特定の接続先にドラックアンドドロップでファイルを転送した際に発生し、
セッションが途中で強制終了してしまう。
容量が小さいファイルは問題なくコピーできる。
解決策
①対象ファイルをzip化してから転送
圧縮して容量を小さくすれば回避できることがある。
接続先でunzipして展開すれば問題ない。
自分の場合はjarファイル(既に圧縮済み)で容量が大きすぎたので、
この回避策は使えず。
②接続先の容量確認
容量が少ないとこのエラーが起きることがあるらしい。
Linuxであれば以下のコマンドで確認できる
df -h
自分の場合、空き容量は十分にあったので、これでも解決せず。
③転送元/転送先のパスを短くし、日本語を含めない
自分の場合はこれで解決しました。
テスト用のモジュールを転送したかったので、
以下のようなディレクトリ構成にしていたのですが、
これがよくなかったみたいです。
【転送元】
|-username
| |-テスト用モジュール
| |-検証
| |-module.jar
【転送先】
|-username
| |-テスト用モジュール
| |-検証
パスが長いのがダメだったのか、日本語が含まれているのがダメだったのか、
以下のように修正したところ上手くいきました。
【転送元】
|-username
| |-temp
| |-module.jar
【転送先】
|-username
| |-temp
おわりに
この件に限らず、ディレクトリ名やファイル名に日本語を使うと、
エンコーディングの問題で思わぬエラーや不具合が起こることが多々あるようです。
今までは、
「なんでわざわざ英語で命名するんだ!日本語の方が分かりやすいのに💢」
とか思っていたのですが、こういった理由があったんですね(反省)。