初めて投稿させていただきます。
LaravelのStorageクラスでputメソッドを使用した時にエラーが発生したのでメモに残しておきます。
問題
ローカルに保存したjsファイルをSFTPで保存しようとしたところエラーが発生しました。
$filePath = 'directory/test.js'
$file = Storage::disk('local')->get($filePath);
Storage::disk('sftp')->put($file,$filePath);
エラー文を翻訳してみると「破損したパスが検出されました」
Corrupted path detected: { jsファイル内容 }
解決
原因は単純なことでした。
パスに問題があるということで不要なスペースやスラッシュが入っていないか確認してみましたが見当たらず、少し悩みましたが単純にputメソッドに渡す引数の順番が反対になっておりました。
正しくは下記のようになります。
Storage::disk('sftp')->put($filePath,$file);
まとめ
凄く単純なことですが、ファイルの扱いってエラーが発生するとファイルは破損しているんじゃないか?putメソッドでjsファイルは保存できないんじゃないか?など色々考えてしまいますがエラー文をしっかり理解して対応することが必要ですね。
非常に単純なエラーではありますが誰かのお役に立てれば幸いです。
参考リンク
Laravel 8.x ファイルストレージ