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

时间:2014-07-23 13:33:50

标签: 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_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
  )]
)

这是正确的做法还是有更好,更安全的方式?

2 个答案:

答案 0 :(得分:0)

我还没有使用S3,但是

  • 商店必须在服务器端定义,而不是在客户端定义。
  • Meteor.methods由客户端调用,这意味着即使您没有向用户显示呼叫的答案,仍然可以通过Web控制台手动调用它来显示它。

我认为你需要的是:link

答案 1 :(得分:0)

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