Laravel 本地存储图像vs cloudinary vs s3

Laravel 本地存储图像vs cloudinary vs s3,laravel,image,amazon-s3,shared,cloudinary,Laravel,Image,Amazon S3,Shared,Cloudinary,设置: 博客与文章,buily与Laravel,其中: 每篇文章最多可以有1个图像(可为空) 博客中的最大帖子数是1000。让我们假设讨论有1000个帖子 每个帖子都有一个评论区。注册用户可以在其中发表评论,并在其评论中包含图像。假设每篇文章的评论中都有两张图片 因此,总共有3000张图片需要存储(我猜还需要调整大小)、呈现等等 这是一个理想的长期量,我不是在寻找一个“可伸缩”的解决方案,因为不会出现疯狂的指数增长 *事实上,目前它的数量较少,我假设对于这些数量的媒体文件来说,它是1000/

设置:

博客与文章,buily与Laravel,其中:

  • 每篇文章最多可以有1个图像(可为空)
  • 博客中的最大帖子数是1000。让我们假设讨论有1000个帖子
  • 每个帖子都有一个评论区。注册用户可以在其中发表评论,并在其评论中包含图像。假设每篇文章的评论中都有两张图片
因此,总共有3000张图片需要存储(我猜还需要调整大小)、呈现等等

这是一个理想的长期量,我不是在寻找一个“可伸缩”的解决方案,因为不会出现疯狂的指数增长

*事实上,目前它的数量较少,我假设对于这些数量的媒体文件来说,它是1000/1500/2000还是3000并不重要。。如果那是错的,请纠正我

需要注意的几个额外事项:

  • 我在共享主机中托管它(我最多可以存储300k文件)
  • 我希望它是安全的,所以没有恶意文件上传到封面的图像文件
  • 我正在寻找一个预算解决方案(因此,如果s3在12个月后开始收费,那么它就不相关了),最好是免费的(
因此,在将所有图像本地存储到存储文件夹(使用一些Laravel软件包处理图像)之间存在着两难的选择。另一种可能是cloudinary,我对此不太了解,只是它允许存储/操作/备份/使用它们的api来显示我存储在那里的图像

如果我选择在本地进行,那么在本地存储用户上传的图像是否安全?如何确保它不是伪装成图像文件的恶意软件

有了这么多的图像/内容,在本地存储时是否会导致共享主机的性能问题

使用cloudinary对我有什么好处


谢谢。

在这种情况下,Cloudinary实际上可以帮上大忙。 您可以将Cloudinary集成到项目中,而不是将资源存储在本地并编写一些东西来操作它们

这将释放服务器空间。本地存储映像可能会影响性能,也可能不会影响性能,具体取决于体系结构,但释放服务器资源始终是一种好做法

此外,当第一次被请求时(或者如果你愿意的话,在被请求之前)可以通过一个简单的API调用动态地完成图像的传输。因此,你不需要编写新的API,而需要利用现有的API

Cloudinary还有一个功能齐全的平台,您可以使用。如果您目前不期望指数级的增长,那么这个平台对于项目来说已经足够了


全面披露:我目前在Cloudinary工作(但上面的内容仍然有效:)。

我建议您选择一种解决方案,如果您愿意/需要,可以很容易地进行更改。如果您的服务器上有足够的空间,并且您的流量不会那么高,那么我会说现在就让它保持本地(除非有特定的理由不这样做)。看看,谢谢你的回复。这个包基本上是处理图像的api吗?这与干预方案有什么区别?另外,一个月几千个用户会被认为是低流量还是高流量?我会说这是相当低的流量。干涉图像是一个用于处理图像的软件包,媒体库也可以这样做,但也提供了一种处理图像存储和不同操作的方法。不过这只是一个建议,可能不适合你的需要,但如果没有其他建议,它可能会给你一个起点。谢谢你的回答。您能否提供一个示例,说明我的用例如何适合cloudinary的免费层?假设每天最多有3000张存储的图片和数百名用户访问该网站并查看包含图片的不同帖子/评论。免费层有25个积分。1学分等于1000次转换或1GB的托管存储或1GB的每月查看带宽。上传3k图像并在每个图像上执行一次转换将计为6学分(上传图像被视为一次转换加上每个上传图像上的3k转换)。假设每个图像的重量为1MB(高估计值),则意味着3GB的存储空间或另外3个积分,这意味着每30天就有16(25-9=16)GB的带宽可供交付,我假设每天有数百名观众不会使用,但一旦我上传完所有3k图像/转换,流量会有所不同,这意味着在下个月,我将再次获得25个学分,即25GB的可用带宽,供我的用户查看/交互?另一个问题-CDN是自动的还是我需要集成它?带宽和转换在30天的滚动窗口中计算。因此,是的,假设在最初的上传之后不会有更多的上传或转换,30天后,您将能够使用CDN开箱即用的所有25个带宽积分。使用Cludinary交付的每个资源都使用CDN交付。