我正在开发一个项目(基于MEAN Stack),根据不同的登录用户显示不同的图像。我正在使用亚马逊S3存储这些图像。
目前我为管理面板创建了一条不同的路线,管理员可以登录并在亚马逊s3上为不同的用户上传图像。(另外,这是应用程序的正确流程吗?)
我的js文件中有以下代码行:
AWS.config.update({ accessKeyId: xxxxxx, secretAccessKey: xxxxxx });
我已经读过这应该仅用于开发目的,我不应该在代码中使用我的accesskeyId和secretacesskey。
我想知道生产应该做什么?
答案 0 :(得分:0)
对于生产,您需要将这些密钥存储在环境中。 Aws模块本身将从环境中挑选这些。
应设置AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
个键。
例如,在本地计算机上,您可以使用终端命令测试这些
export AWS_ACCESS_KEY_ID=XXXXX
并分别导出AWS_ACCESS_KEY_ID=XXXXX
。
对于生产,您需要做同样的事情。除非您需要通过您正在使用的节点进程管理器执行此操作。这是pm2进程管理器的一个例子。
module.exports = {
apps : [
{
name: "myapp",
script: "./app.js",
watch: true,
instance_var: 'INSTANCE_ID',
env: {
"PORT": 3000,
"NODE_ENV": "development",
"AWS_ACCESS_KEY_ID": "XXXXX",
"AWS_SECRET_ACCESS_KEY": "XXXXX"
}
}
]
}
http://pm2.keymetrics.io/docs/usage/environment/#specific-environment-variables 即使您使用不同的流程管理器,流程也是类似的。