web-dev-qa-db-ja.com

Laravelで2つのディスクを使用してファイルをコピーする

Laravelに2つのディスクがあります。

1つはローカルディスクで、もう1つはファイルをアップロードする必要があるFTPサーバーです。どちらも正しく構成されています。

私はそれをこのように試みました:

 Storage::disk('FTP')->copy('old/file1.jpg', 'new/file1.jpg');

これは、ファイルがすでにFTPサーバーにある場合にのみファイルをコピーします。私もドキュメントを読みましたが、ファイルをアップロードするために両方を組み合わせる方法はないようです。

助言がありますか?

9
prgrm

Storage::getStorage::putの単純な組み合わせでうまくいくはずです。

Storage::disk('FTP')->put('new/file1.jpg', Storage::get('old/file1.jpg'));
18
ceejayoz

@ceejayozには良い答えがありますが、コメントで述べたように、これはフェッチしてから書き込みます。

ストリームを使用するには、代わりに以下を使用できます。

Storage::disk('FTP')->writeStream('new/file1.jpg', Storage::readStream('old/file1.jpg'));
21
Dan Jones