我有一個存儲桶中的對象,我偶爾需要將其轉移到Amazon S3中的第二個存儲桶。我使用帶Flysystem的Laravel 5.3來管理這些桶。如何使用flysystem將文件從一個存儲桶傳輸到另一個存儲桶?
一個解決方案是將圖像下載到我的服務器,然後將其上傳到另一個存儲桶,但這似乎是浪費時間/帶寬,因爲該文件存在於S3中,並且正在S3中移動。這可以在Flysystem中完成,還是需要直接使用Amazon的API?
我有一個存儲桶中的對象,我偶爾需要將其轉移到Amazon S3中的第二個存儲桶。我使用帶Flysystem的Laravel 5.3來管理這些桶。如何使用flysystem將文件從一個存儲桶傳輸到另一個存儲桶?
一個解決方案是將圖像下載到我的服務器,然後將其上傳到另一個存儲桶,但這似乎是浪費時間/帶寬,因爲該文件存在於S3中,並且正在S3中移動。這可以在Flysystem中完成,還是需要直接使用Amazon的API?
可以使用FilesystemAdapter移動功能來移動文件:
$disk = Storage::disk('s3');
if (!$disk->move('bucketOne/testFile.jpg', 'bucketTwo/testFile.jpg')) {
throw new \Exception('File could not be moved.');
}
你可以寫上已被轉移,並在工作中的文件工作,使用'$內容=庫存::得到( 'file.jpg');'獲取文件並創建單獨的新Flysystem實例,並連接到新服務器並寫入所讀取的內容。 –
@CerlinBoss不會在那個時候下載和上傳嗎?這就是我想要避免的。我的目標是將文件從存儲桶 - >存儲桶,而不是存儲桶 - >我的服務器 - 存儲桶。 – Citizen
我不認爲這是你可以從你的laravel服務器做的事情。 U可能需要利用亞馬遜的API(如果他們提供的話)。 –