如何使用节点 api 将图像存储在共享主机提供商上

Posted

技术标签:

【中文标题】如何使用节点 api 将图像存储在共享主机提供商上【英文标题】:How to store images on shared hosting provider with node api 【发布时间】:2021-11-15 04:35:04 【问题描述】:

我有一个 Node JS API 目前托管在 Heroku 免费层上,我正在使用 Postgres 数据库并使用 Heroku 的免费 Dyno。我最近添加了 multer 来存储图像,但我猜 Heroku 在其免费层中不允许这样做,所以我希望有什么方法可以将图像存储在共享主机上?我在那里有 20GB 的 SSD 空间。我可以路由我的图像并将图像的路径存储在我的数据库中吗?我试图在互联网上搜索很多,但找不到任何相关信息。

【问题讨论】:

【参考方案1】:

首先是一个好问题。

你是对的 Heroku 的免费套餐不保存本地文件,因为托管在免费套餐休眠的应用程序,这意味着服务器在不活动后停止运行,之后下次访问应用程序时它会重新启动服务器从头开始,它指的是不包含图像的最新 git 提交或版本。

无论如何,您都需要为您的文件或图像提供存储服务。 我建议使用 cloudinary https://cloudinary.com/ Cloudinary 为您提供免费套餐,无需信用卡和 25gb 的文件存储空间。您可以查看那里的文档以上传和管理您的文件,或者您可以研究教程。您也可以使用包 multer-storage-cloudinary 来简化上传文件,但您始终可以使用文档中的原始方法。

我建议也检查一下 AWS s3(简单存储服务) https://aws.amazon.com/s3/ 但是,这需要您的信用卡信息才能注册,我认为有一个免费套餐可以持续一年。

希望对您有所帮助,祝您有美好的一天!

【讨论】:

“Heroku 的免费套餐不保存本地文件”——这与免费与付费无关。 所有 Heroku dynos 都有一个ephemeral filesystem。这是deliberate part of the design。 好吧,我以为付费版本支持它们,但事实证明它不支持,你每天都能学到新东西。干杯!

以上是关于如何使用节点 api 将图像存储在共享主机提供商上的主要内容,如果未能解决你的问题,请参考以下文章

共享主机中的 Laravel 存储链接

特殊问题和实战经验

共享主机上的Laravel存储符号链接

如何在节点js中使用单个api保存文本字段值以及文件上传?

图片上传/接收API

Zookeeper概述环境搭建及基本API使用和相关应用场景