Cloudinary建议用法

问题描述

我有一个angular / react客户端和NodeJS服务器。 我的客户会将图像上传到他们的个人资料,我将它们存储在cloudinary中。 我对这里的推荐路径感到好奇,因为我可以看到每种方式都带有pro / cons的2种方式

  1. 我可以将图像从Web发布到我的NodeJS服务器,然后发布到cloudinary
  2. 我可以将图像直接从网络上传到cloudinary,然后将URL从客户端传递给我。

方法1更安全-我控制流量/上传量 方法2更快-文件不通过我的服务器路由,直接进入cloudinary

我非常感谢您的想法/评论/推荐用法-因为我无法通过cloudinary找到任何信息...

解决方法

以下是每种方法的优缺点列表。

服务器端上传

优点:

  • 在继续上传到Cloudinary之前,您可以使用自己的自定义逻辑和验证
  • 您可以轻松地动态应用许多其他优化和转换,而不必为每个所需方案预先设置多个未签名的上传预设
  • 如果需要,它允许您在将资产上传到Cloudinary之前将其存储在自己的存储桶中。

缺点:

  • 上传需要更长的时间。资产上载两次。一次从客户端浏览器到您的服务器,第二次从您的服务器到Cloudinary。
  • 浪费服务器资源(您可能需要为托管服务(即AWS)支付)-计算,带宽,存储。

客户端上传

优点:

  • 您已经提到,这样做的速度更快,因为一旦客户端完成资产上传,就完成了上传,而无需从服务器向Cloudinary进行第二次上传。
  • 使用Cloudinary的Upload Widget
  • 的可选快速实现
  • 您一天上传一个或一百万个上传,这对您的服务器没有影响。您无需担心处理上传队列的瓶颈,扩展服务器,当然,您还可以节省此操作的成本。最重要的是,同时进行上传时,不会影响客户的用户体验和加载时间。

缺点:

  • 您必须使用上传预设进行上传。您不能仅在客户端代码中简单地添加/修改Cloudinary的优化和转换参数,除非您签署要求。生成签名只能在服务器端进行,这样您就不会公开公开您的API Secret。因此,这要求您在实际发送请求之前,将每个请求的有效负载发送到服务器,以获取信号。毕竟,尽管不必处理实际的上载,但每个客户端上载毕竟要依赖您的服务器,这会消耗更多资源。

您还应该注意,如果您还使用Admin或Search API,则永远不要从客户端执行这些操作,因为这些是需要完全凭据身份验证的管理操作。因此,如果您确实使用它,那么您将不可避免地需要针对它们的服务器端实现。

总而言之,没有一种方法最终比另一种方法更好。这实际上取决于您的用例,需求和偏好。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...