gpt4 book ai didi

php - Laravel 保护 Amazon s3 存储桶文件

转载 作者:可可西里 更新时间:2023-11-01 13:44:46 25 4
gpt4 key购买 nike

我正在使用 Amazon s3,但我面临两个问题

1.当我提交表单时,我无法直接将文件上传到亚马逊服务器。我的意思是我必须将图像上传到我的 PHP 服务器上的 upload 文件夹,然后我必须从那里检索和将它们上传到 s3 服务器。有没有办法在我们点击提交的时候直接上传图片到s3

2.如果我在s3 put object 中传递'public',那么我就可以访问或查看文件,但如果我将其公开,则每个人都可以查看文件。但我需要保护所有文件并仅供经过身份验证的用户查看。谁能建议我如何解决这个问题?

try {           
$s3 = \Storage::disk('s3');
$s3->put($strFileName, file_get_contents($img_path.$strFileName), 'public');
} catch (Aws\Exception\S3Exception $e) {
echo "There was an error uploading the file.\n"+$e;
}

在提问之前,我已经阅读了很多来自 stackoverflow 的答案,但它并没有帮助我解决我的问题。谢谢。

最佳答案

第一个问题,可以直接上传图片到AWS S3。

$s3 = \Storage::disk('s3')->getDriver();
$s3->put($filePath, file_get_contents($file), array('ContentDisposition' => 'attachment; filename=' . $file_name . '', 'ACL' => 'public-read'));

您应该指定文件路径和从表单中获取的文件。

关于php - Laravel 保护 Amazon s3 存储桶文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40168221/

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