node.js - 使用 AWS 时,我应该在哪里上传我的应用程序文件?
问题描述
最近我在将我的应用程序部署到 heroku 时遇到了一种情况,我了解到 heroku 有一个临时存储,这意味着每次更新我的 api 后,我所有的上传都会被删除。
因此,我对如何保存文件进行了更多调查,最终得到了答案:使用 AWS S3 存储。
鉴于我必须使用 AWS 并且我不想创建一个帐户(因为懒惰),我决定只创建一个而不是 heroku 并使用 EC2 实例。
但是现在我已经配置了我的 nginx、反向代理、ssl 等,我想到了一个问题。我应该使用 AWS S3 存储吗?或者我应该使用 EC2 实例中的可用空间并在需要时增加它?
我的配置如下:我有一个使用 node.js 和 express 构建的 API,应用程序使用 pm2 运行,我配置了一个反向代理,所以每次用户转到指向 ec2 实例的子域时,反向代理都会监听端口 80 和 443 并将流量重定向到 127.0.0.1:5000
现在,问题是用户必须上传个人资料图片和其他一些文件,并且它们是在我的项目的同一级别上传的。
-- Project Folder
-- routes
-- model
-- upload // I have subfolders here, and uploads are uploaded here.
-- index.js
那么,我应该让我的项目保持原样还是应该改变我的上传工作方式?
解决方案
您可以使用 S3 作为上传文件的存储空间。但是您必须更新代码才能使用 S3 SDK 将文件上传到 S3 存储。将图像存储在 EC2 中并没有错,只要您不会遇到数百万张图像。因此,您当前的设置很好。
推荐阅读
- python - 软件包 libcxxabi 已安装但在 conda 中找不到
- sublimetext3 - 如何在 sublime 文本中更改 flake8 的缩进设置?
- apache-spark - 什么是 Spark 中的“序列化重定位”?
- java - 是否可以在 Java 的父类中为子类赋值?
- python - 根据先前 tkinter 条目小部件中给出的值添加条目小部件
- javascript - 更新嵌套对象
- android - Android Recyclerview 中的多种视图类型仅显示一个视图
- arrays - Perl 数组包含自身?
- python - 如何在屏幕中央对齐来自网络摄像头的 OpenCV 输出
- c - Windows 上的 pdcurses - printw() 不打印长字符串 (C) - ncurses 在 linux 上工作正常 - 可能的错误或我的实现错误?