gpt4 book ai didi

laravel - 如何使用 flysystem 将文件从一个存储桶传输到另一个存储桶?

转载 作者:行者123 更新时间:2023-12-05 03:09:53 25 4
gpt4 key购买 nike

我有时需要将一个存储桶中的对象传输到 Amazon S3 中的第二个存储桶。我使用 Laravel 5.3 和 Flysystem 来管理这些桶。

一种解决方案是将图像下载到我的服务器,然后将其上传到另一个存储桶,但这似乎是在浪费时间/带宽,因为该文件存在于 S3 中并且正在 S3 中移动。这可以在 Flysystem 中完成,还是我需要直接使用亚马逊的 API?

最佳答案

我找到了解决方案。这是我的代码:

try {
$s3 = Storage::disk('s3');
$s3_temp = $s3->getDriver()->getAdapter()->getClient()->copy(
env('S3_BUCKET_ORIGIN'),
$file_path_origin,
env('S3_BUCKET_DEST'),
$file_path_dest,
'public-read'
);
} catch(\Exception $e) {
dd($e->getMessage());
}

请记住 Laravel 的 S3 文件系统使用 SDK aws-s3-v3 因此,您搜索 aws-s3-v3 的库以查看 Laravel 包装器具有哪些功能。

因此,在示例中,我获得了 aws-s3 的客户端类,因此我在文档中发现,使用此类,我可以将文件从一个存储桶移动到另一个存储桶。

S3 Php Documentation - Client Class - Copy Method

关于laravel - 如何使用 flysystem 将文件从一个存储桶传输到另一个存储桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41479682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com