使用Heroku应用程序解析服务器S3文件适配器

时间:2017-02-04 23:43:52

标签: heroku amazon-s3 parse-server

我正在尝试设置s3文件适配器,但我不确定我是否收到了不正确的内容或其他内容的格式。我跟着这个:

https://github.com/ParsePlatform/parse-server/wiki/Configuring-File-Adapters#configuring-s3adapter

准确指导但是当我取消注释下面的代码块并输入我的aws凭据然后将设置推回到Heroku应用程序或仪表板不再启动,说有一个应用程序错误:

//**** File Storage ****//
 filesAdapter: new S3Adapter(
    {
    "xxxxxxxx",
    "xxxxxxxx",
    "xxxxxxxx",
    {directAccess: true}
    }
 )

2 个答案:

答案 0 :(得分:2)

我会为Heroku设置如下:

确保在执行指南中描述的所有步骤后,您的政策与此类似:

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME",
                "arn:aws:s3:::BUCKET_NAME/*"
            ]
        }
     ]
 }

现在将此政策应用于存储桶:在S3控制台中选择您的存储桶,点击右上角的“属性”按钮。展开“权限”部分,按“编辑存储桶策略”并在文本字段中粘贴上面的json。

enter image description here

index.js文件中配置解析服务器:

var S3Adapter = require('parse-server').S3Adapter;
var s3Adapter = new S3Adapter(
    "AWS_KEY",
    "AWS_SECRET_KEY",
    "bucket-name",
    { directAccess: true }
);

并向Parse Server init(var api = new ParseServer({..}))添加两行:

filesAdapter: s3Adapter,
fileKey: process.env.PARSE_FILE_KEY

答案 1 :(得分:2)

类似于Cliff的帖子,.S3Adapter必须在()之外

var S3Adapter = require('parse-server').S3Adapter;

然后在解析服务器init:

 filesAdapter: new S3Adapter(
    {
    accessKey: process.env.S3_ACCESS_KEY || '',
    secretKey: process.env.S3_SECRET_KEY || '',
    bucket: process.env.S3_BUCKET || '',
    directAccess: true
    }
 )

这适用于这种情况。