filesystems.php
構成ファイルに 2 つのディスクが定義されています。
'd1' => [
'driver' => 'local',
'root' => storage_path('app/d1'),
],
'd2' => [
'driver' => 'local',
'root' => storage_path('app/d2'),
],
これらのディスクは Amazon S3 バケットの場合もあり、S3 バケットとローカル ディスクの組み合わせが存在する場合もあります。
app/d1/myfile.txt
に移動したいファイルがあるとしましょうapp/d2/myfile.txt
。
私が今していることは
$f = 'myfile.txt';
$file = Storage::disk('d1')->get($f);
Storage::disk('d2')->put($f, $file);
気にしないので、元のファイルをd1に残します(定期的にd1からファイルを削除します)。
私の質問は次のとおりです。
以下のコードはアトミックですか、それがアトミックかどうかを確認するにはどうすればよいですか、そうでない場合はどのようにアトミックにするのですか (ファイルが 1GB または同様のサイズのシナリオの場合):
$f = 'myfile.txt';
$file = Storage::disk('d1')->get($f);
Storage::disk('d2')->put($f, $file);
Storage::disk('d1')->delete($f);
Storage
ファサードを使用して、あるディスクから別のディスクにファイルを移動する簡単な方法はありますか。現時点では、あるローカル ディスクから別のディスクに移動する必要がありますが、将来的には、ある S3 バケットから同じバケットに、ある S3 バケットから別のバケットに、またはローカル ディスクから S3 バケットに移動する必要があるかもしれません。
ありがとう