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

Posted

技术标签:

【中文标题】使用 Heroku 应用解析服务器 S3 文件适配器【英文标题】:Parse Server S3 file adapter with Heroku app 【发布时间】:2017-02-04 23:43:51 【问题描述】:

我正在尝试设置 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
    
 )

【问题讨论】:

【参考方案1】:

我会为 Heroku 设置如下:

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

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

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

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

【讨论】:

感谢发帖的朋友。 Id 遵循了所有设置指南,但使用了 process.env。对于环境变量。我使用了我在 GitHub 上找到的东西,并从 directAccess var 中删除了大括号,它似乎正在工作(目前) 您是否看过任何设置 mailgun 的指南? github.com/ParsePlatform/parse-server-simple-mailgun-adapter 是个白骨【参考方案2】:

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

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

然后在解析服务器初始化:

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

这在这种情况下有效。

【讨论】:

以上是关于使用 Heroku 应用解析服务器 S3 文件适配器的主要内容,如果未能解决你的问题,请参考以下文章

解析 S3FileAdapter

使用 AWS S3 for django 在 heroku 上提供静态文件?

在 Heroku 应用下挂载 S3 文件夹

如何在 Angular 前端使用 Heroku (S3 CDN) 的“简单文件上传”功能

如何将文件直接从 Django admin 上传到 Amazon S3?缓解 Heroku 应用程序错误(超时)

从解析仪表板上传时如何减小图像大小