使用NodeJs将文件上传到aws s3

时间:2018-01-01 10:23:13

标签: node.js amazon-web-services amazon-s3 mean-stack

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

对于生产,您需要将这些密钥存储在环境中。 Aws模块本身将从环境中挑选这些。 应设置AWS_ACCESS_KEY_IDAWS_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 即使您使用不同的流程管理器,流程也是类似的。