gpt4 book ai didi

php - AWS S3 - 存储和提供非私有(private)图像

转载 作者:行者123 更新时间:2023-12-04 00:32:25 25 4
gpt4 key购买 nike

我是第一次使用 Flysystem 使用 S3 实现文件上传(在这种情况下特别是用户个人资料头像图像) .我目前已经创建了一个 S3 存储桶,用户可以上传一张图片,然后可以在存储桶控制台中在线查看该图片。

我现在需要能够在请求时显示这些图像(即查看该用户的个人资料)。我假设这个过程是生成 URL(例如 https://s3.my-region.amazonaws.com/my-bucket/my-filename.jpeg )并将其用作图像标签的 src 但是要做到这一点,必须标记文件(或存储桶)作为公众。这对我来说似乎是合理的,因为其中的文件并不是真正私密的。但是,当您将存储桶更新为公开状态时,您会看到一条消息:

We highly recommend that you never grant any kind of public access to your S3 bucket.

是否有一种不同的或更安全的方式来实现像这样的直接图像链接,而 AWS 的新手却没有看到?

最佳答案

之所以存在警告,是因为许多人无意中公开了信息。但是,如果您乐于让 Internet 上的任何人随时访问这些特定文件,那么您当然可以公开各个对象或创建 Amazon S3 存储桶策略以公开特定路径。

授予访问权限的另一种方法是创建 S3 Pre-Signed URL ,这是一个限时 URL,授予对私有(private)对象的访问权限。

您的应用程序将负责验证是否应授予用户对特定对象的访问权限。然后它将生成 URL,提供访问的持续时间。然后,您的应用程序可以将 URL 插入 src 字段,图像将正常显示。但是,一旦持续时间过去,它将无法再访问。

这通常用于提供对私有(private)文件的访问权限——类似于 DropBox 提供对私有(private)文件的访问权限而不使文件本身公开的方式。

关于php - AWS S3 - 存储和提供非私有(private)图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078866/

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