解析服务器S3适配器已弃用

时间:2017-08-15 16:06:41

标签: heroku amazon-s3 parse-server

Parse S3 Adapter S3_ACCESS_KEYS3_SECRET_KEY的要求现已弃用。它说要使用环境变量:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY。我们已经为AWS用户设置了访问密钥ID,我们也有密钥。我们已更新到最新版本的适配器并删除了旧的S3_X_Key变量。不幸的是,一旦我们这样做,我们就无法访问,上传或更改S3存储桶上的文件。用户可以访问我们的存储桶属性,如果我们将其更改回使用显式S3_ACCESS_KEY并且秘密一切正常。

我们在Heroku上主持,到目前为止还没有任何问题。

还需要做些什么来设置它?

此弃用通知对于如何解决此问题非常模糊。 (链接到通知:https://github.com/parse-server-modules/parse-server-s3-adapter#deprecation-notice----aws-credentials

2 个答案:

答案 0 :(得分:3)

我做了以下步骤,现在正在工作:

  1. 安装了亚马逊的CLI http://docs.aws.amazon.com/cli/latest/userguide/installing.html

  2. 通过创建用户然后创建密钥ID和密码来配置CLI http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

  3. 设置S3_BUCKET env变量

    导出S3_BUCKET =

  4. 使用命令

    安装的文件适配器
    npm install --save @parse/s3-files-adapter
    
  5. 在我的parse-server的index.js中添加了文件适配器

    var S3Adapter = require('@parse/s3-files-adapter');
    var s3Adapter = new S3Adapter();
    
    var api = new ParseServer({
        appId: 'my_app',
        masterKey: 'master_key',
        filesAdapter: s3Adapter
    })
    

答案 1 :(得分:1)

如果您使用AWS或托管解决方案,您可以登录服务器并在服务器上运行AWS Configure命令,那么下面的Arjav Dave答案最好。或者,如果您在本地运行所有内容。

但是,我问的是Heroku,这适用于任何可以设置ENV变量的服务器环境。

真的只需几步就可以了。如果您有以前的版本设置,则要将文件适配器切换为刚读取: filesAdapter: 'parse-server-s3-adapter', (或者你的npm安装包被称为一些正在使用@parse/...一个)

取出require语句,不要在index.js中创建S3Adapter或类似内容的任何实例变量。

然后在Heroku.com中创建配置变量或使用CLI:heroku config:set AWS_ACCESS_KEY_ID=abcheroku config:set AWS_SECRET_ACCESS_KEY=abc

现在运行并测试您的上传内容。一切都应该是好的。

新适配器使用环境变量进行访问,您只需告诉它在index.js文件中安装了哪个文件适配器。它将处理其余的事情。如果这不起作用,则值得测试IAM配置文件并确保它在返回此部分之前全部正常工作。见下文:

仍然无法使用?尝试运行此示例(在测试时将sample.js编辑为您的存储桶): https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html

完全迷失,不知道从哪里开始?

1获取您的AWS凭证 https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html

2设置您的水桶 https://transloadit.com/docs/faq/how-to-set-up-an-amazon-s3-bucket/ (也请关注IAM用户的部分)

3遵循IAM最佳实践 https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html

然后返回到此帖子的顶部。

希望能帮助其他被此困惑的人。