laravel 在AWS的S3或EFS中存储数千张图像的位置?

vbopmzt1  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(117)

我将在不久的将来做一个项目,一个我们将在时间的过程中存储成千上万的图像的项目。我很难决定是使用Amazon S3还是EFS来存储这些图像。我认为这两个都是一个非常好的选择,但我的问题是什么是最好的服务或什么是最好的做法?
我的应用程序将使用Laravel完成,我已经完成了这两个服务的集成。
该项目的大部分特点是:

  • 我将存储的大部分文件将是照片约95%。
  • 每天将存储大约1500张照片。
  • 照片非常大(专业相机)。
  • 交通的应用程序不会太多,大约。一次100个用户。
  • 每个用户每天会浏览大约100张照片。

你有什么好推荐的?

oyjwcjzk

oyjwcjzk1#

S3绝对是正确的答案和练习。我已经建立了许多像你描述的应用程序,一些与数以亿计的图像,和S3是上级。它还允许灵活性,例如您的API将图像作为预签名的URL返回,这将减少对服务器的负载,图像可以通过静态Web托管直接链接,并且它提供生命周期策略来归档较少使用的数据。此外,使用事件触发器可以轻松地与其他AWS服务进行进一步集成。
至于存储/上传,S3多部分上传对于提高性能和提高可靠性非常有用。
如果您正在执行一些密集型处理,其中您有一个服务器集群,需要使用共享文件系统降低延迟,那么EFS对您的场景类型是有意义的-想想HPC。EFS的成本也更高,并且不像S3那样提供那么多的扩展性选项或内置特性。你的场景听起来不需要EFS。
http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
http://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html

atmip9wb

atmip9wb2#

对于您提出的场景,AWS S3是首选。为什么?为什么?

  • 由于图像更频繁地添加,它的成本约为EFS的1/10。
  • 减少您的Web服务器上的开销,因为文件可以直接上传和下载S3。
  • 您可以利用Lambda的事件驱动处理,例如生成缩略图,通过S3 Lambda触发器进行图像处理过滤器。
  • 更高级别的SLA,以确保可用性和持久性。
  • 支持内置的生命周期管理,以归档和降低成本。

AWS EFS也可以是一个选项,如果它经常修改图像(其中EBS也是一个选项)
您还可以考虑使用AWS CloudFront,并选择缓存图像。
注意:最后,这不是关于使用单一服务。根据您即将到来的需求,您可以选择其中之一或两者。

slwdgvem

slwdgvem3#

Amazon Elastic File System旨在提供卷以在容器之间共享数据。如果您的容器希望通过多个容器处理相同的内容,那么EFS将是一个很好的选择。

  • 您的场景与S3完美匹配,因为您需要对象存储,而这正是S3构建的目的。
  • 您的Web应用程序的用户可以直接从S3下载,这样可以减轻Web服务器的负担。
  • 您可以使用AWS CDN命名CloudFront。
  • 它远没有那么贵

相关问题