laravel - 在本地存储图像 vs cloudinary vs s3

标签 laravel image amazon-s3 shared cloudinary

设置:

带有帖子的博客,使用 Laravel 构建,其中:

  • 每个帖子最多可以有 1 张图片(可为空)。
  • 博客中的最​​大帖子数为 1000。假设有 1000 个帖子供讨论。
  • 每个帖子都有评论区。注册用户可以在这里发表评论并在评论中包含图片。让我们假设每个帖子在评论中都有 2 张图片。

  • 因此,它总共需要存储(我猜是调整大小)、呈现等 3000 张图像*。

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

    *实际上目前它更少,我认为对于这些数量的媒体文件,它是 1000/1500/2000 还是 3000 并不重要。如果那是错误的,请纠正我。

    一些额外的注意事项:
  • 我将它托管在共享主机中(我最多可以存储 30 万个文件)。
  • 我希望它受到保护,因此不会在图像文件的封面中上传恶意文件。
  • 我正在寻找一种预算解决方案(因此,如果 s3 将在 12 个月后开始收费,这将使它变得无关紧要),最好是免费的(。

  • 因此,困境在于将所有图像本地存储在 Storage 文件夹中(使用某些 Laravel 包操作图像)。另一种可能性是 cloudinary,我不太了解,只是它可以存储/操作/备份/使用他们的 api 来呈现我存储在那里的图像。

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

    如此数量的图像/内容在本地存储时是否会导致共享主机的性能问题?

    使用 cloudinary 对我有什么好处?

    谢谢。

    最佳答案

    在这种情况下,Cloudinary 实际上可以提供很多帮助。
    您可以将 Cloudinary 集成到项目中,而不是在本地存储资源并编写一些内容来操作它们。

    这将释放服务器空间。在本地存储图像可能会或可能不会影响性能,具体取决于体系结构,但释放服务器资源始终是一个好习惯。

    另外,manipulation并且可以通过简单的 API 调用在第一次请求时(或者如果您愿意,可以在请求之前急切地)即时完成图像的交付。因此,您不需要编写新的东西,而是利用现有的 API。

    Cloudinary 还有一个功能齐全的 free tier你可以使用。如果您目前不期望指数级增长,那么该层对于项目来说已经绰绰有余了

    完全披露:我目前在 Cloudinary 工作,(但上述内容仍然成立 :))。

    关于laravel - 在本地存储图像 vs cloudinary vs s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59810225/

    相关文章:

    php - `Class not found` 错误,即使类被定义为模态

    laravel - Eloquent 一对一关系与两个自定义字段

    flash - Flash CS3 中的模糊 .png

    amazon-web-services - IAM 用户策略在 Amazon S3 存储桶上返回 403 Forbidden

    amazon-s3 - 如何对 Amazon S3 等云存储系统进行基准测试

    php - ajax 保存在数据库中,无需外键

    php - 条件为 "or"的 Laravel 验证

    java - java中如何将字节数组转换为图像?

    image - 如何将 BufferedImage 转换为图像以在 JSP 上显示

    amazon-web-services - 无服务器/Lambda + S3 : Is it possible to catch a 'GetObject' event and select a different resource?