使用NodeJs将文件上传到aws s3

问题描述 投票:0回答:1

我正在开发一个项目(基于MEAN Stack),根据不同的登录用户显示不同的图像。我正在使用亚马逊S3存储这些图像。

目前,我已经为管理面板创建了一条不同的路线,管理员可以登录并在亚马逊s3上为不同的用户上传图像。(另外,这是应用程序的正确流程吗?)

我在js文件中有以下代码行:

AWS.config.update({ accessKeyId: xxxxxx, secretAccessKey: xxxxxx });

我已经读过这应该仅用于开发目的,我不应该像这样在代码中使用我的accesskeyId和secretacesskey。

我想知道生产应该做些什么?

node.js amazon-web-services amazon-s3 mean-stack
1个回答
0
投票

对于生产,您需要将这些密钥存储在环境中。 Aws模块本身将从环境中挑选这些。应设置AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY键。例如,在本地机器上,您可以使用终端命令export AWS_ACCESS_KEY_ID=XXXXX和export 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即使您使用不同的流程管理器,流程也是类似的。

© www.soinside.com 2019 - 2024. All rights reserved.