Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor如何在本地安全访问环境变量(CollectionFS S3)_Meteor - Fatal编程技术网

Meteor如何在本地安全访问环境变量(CollectionFS S3)

Meteor如何在本地安全访问环境变量(CollectionFS S3),meteor,Meteor,我创建了环境变量来安全地处理collectionFS、S3上传 为了访问这些变量,我在服务器上创建了这个文件:/server/lib/s3_keys.coffee S3_keyId = process.env.S3_KEYID S3_secretId = process.env.S3_ACCESS_KEY Meteor.methods s3_key: -> if S3_keyId S3_keyId else throw Error() s3

我创建了环境变量来安全地处理collectionFS、S3上传

为了访问这些变量,我在服务器上创建了这个文件:/server/lib/s3_keys.coffee

S3_keyId = process.env.S3_KEYID
S3_secretId = process.env.S3_ACCESS_KEY
Meteor.methods
  s3_key: ->
    if S3_keyId
      S3_keyId
    else
      throw Error()

  s3_secret: ->
    if S3_secretId
      S3_secretId
    else
      throw Error()
我在客户端访问我的密钥,如下所示:

@Images = new FS.Collection("images",
  stores: [new FS.Store.S3("images",
    accessKeyId: ->
     Meteor.call(s3_key)#required if environment variables are not set
    secretAccessKey: ->
      Meteor.call(s3_secret)#required if environment variables are not set
    bucket: "immondm" #required
  )]
)

这是正确的方法还是有更好、更安全的方法?

我还没有使用S3,但是

  • 存储必须在服务器端定义,而不是在客户端定义
  • Meteor.methods由客户端调用,这意味着即使您不向用户显示调用的答案,也可以通过web控制台手动调用来显示

我想您需要的是:

我通常担心将值硬编码到源文件中。Meteor中有一个Mongodb,将其放入一个只能由服务器访问的集合中可能有意义吗