【发布时间】:2020-05-05 16:35:55
【问题描述】:
设置:
包含帖子的博客,使用 Laravel 构建,其中:
- 每个帖子最多可以有 1 张图片(可为空)。
- 博客中的最大帖子数为 1000。假设有 1000 个帖子进行讨论。
- 每个帖子都有一个评论部分。注册用户可以在其中发表评论并在他们的评论中包含图像。假设每个帖子在 cmets 中有 2 张图片。
所以总共需要存储 3000 张图像*(我猜是调整大小)、呈现等等。
这是长期的理想数量,我不是在寻找“可扩展”的解决方案,因为不会出现疯狂的指数增长。
*实际上暂时它更少,我认为对于这些数量的媒体文件来说,它是 1000/1500/2000 还是 3000 并不重要。如果错了,请纠正我。
需要注意的一些额外事项:
- 我将它托管在共享主机中(我最多可以存储 300k 个文件)。
- 我希望它受到保护,因此不会在图像文件的封面上上传恶意文件。
- 我正在寻找一种预算解决方案(因此,如果 s3 将在 12 个月后开始收取高额费用,这将使其无关紧要),最好是免费的(。
因此,难题在于将所有图像本地存储在 Storage 文件夹中(使用一些 Laravel 包操作图像)。其他可能性是云端,我不太了解,只是它可以存储/操作/备份/使用他们的 api 来呈现我存储在那里的图像。
如果我选择在本地进行 - 将用户上传的图片存储在本地是否安全?如何确保它不是伪装成图像文件的恶意软件?
在本地存储时,如果有这么多的图像/内容,会导致共享主机出现性能问题吗?
使用 cloudinary 对我有什么好处?
谢谢。
【问题讨论】:
-
我建议您寻找一种解决方案,如果您愿意/需要,您可以很容易地进行更改。如果您的服务器上有空间并且您的流量不会那么高,那么我会说暂时将其保留在本地(除非有特定原因不这样做)。看看docs.spatie.be/laravel-medialibrary/v7/introduction 和github.com/spatie/laravel-medialibrary/issues/1185
-
感谢您的回复。这个包基本上是一个处理图像的api吗?这个和干预包有什么区别?此外,每月有几千名用户会被视为低流量还是高流量?
-
我会说这是相当低的流量。干预图像是一个用于处理图像的包,媒体库也这样做,但也提供了一种处理图像存储和不同操作的方法。这只是一个建议,可能不适合您的需求,但如果没有别的,它可能会给您一个起点。
标签: laravel image amazon-s3 shared cloudinary