【发布时间】:2020-06-04 14:46:10
【问题描述】:
我想知道处理图像上传和保存对数据库的引用的最佳方法是什么。我最感兴趣的是您按什么顺序执行此过程?
您是否应该先在前端(例如 Cloudinary)上传图片,然后调用 API 以及图片的结果链接并将其保存到数据库中?
还是先把图片上传到服务器,再从后端上传,然后保存参考?
或者,您是否应该在将记录保存在数据库中之后进行图像上传,然后在图像上传后更新它?
【问题讨论】:
标签: node.js file-upload
我想知道处理图像上传和保存对数据库的引用的最佳方法是什么。我最感兴趣的是您按什么顺序执行此过程?
您是否应该先在前端(例如 Cloudinary)上传图片,然后调用 API 以及图片的结果链接并将其保存到数据库中?
还是先把图片上传到服务器,再从后端上传,然后保存参考?
或者,您是否应该在将记录保存在数据库中之后进行图像上传,然后在图像上传后更新它?
【问题讨论】:
标签: node.js file-upload
这实际上取决于您每天需要上传的资源、时间线和图片数量。
因此,基本上,如果您要上传的图像很少,那么您可以将该图像上传到您的服务器,然后将其上传到您正在使用的任何云存储(s3、Cloudinary、..)。因为这很容易实现(您可以在互联网上找到代码 sn-p),并且您可以在服务器端安全地维护您的云平台的密钥/凭证。
但是,在我看来,最好的方法是这样的。我以用户注册为例
现在这种方法的优点是:
【讨论】:
如果图像在您的应用中的重要性很高,那么理想情况下,您不应该在图像保存之前完成交易。方法应该是在您的代码中创建一个对象,您最终将其插入 mongodb,开始将图像上传到云,然后添加到该对象的链接。最后,将这个对象一次性插入到 mongodb 中。不要重复拨打电话。在此之前的任何事情,引发错误并捕获异常
【讨论】:
你可以有很多答案,
如果您正在处理大于 16mb 的大文件,请使用 gridfs 和 multer,
(把图片换成不同的格式保存到mongoDB)
如果您的文件实际上小于 16 mb,请尝试使用此转换器将格式 jpeg / png 的图像更改为保存到 mongodb 的格式,您可以将其视为 gridfs 的简单替代方案,
【讨论】: