S3映像无法在解析服务器上显示

时间:2017-01-02 20:20:53

标签: mongodb heroku parse-platform amazon-s3

我已将我的应用迁移到mongo和heroku。我现在正在努力确保所有图像的PFF都迁移到我的S3。我浏览了教程和代码,并验证了我的图片是否出现在S3存储桶中,并且mongoDb更新了它们的名称。但是,当我运行应用程序并尝试查看图片时,我得到了这个:

[错误]:响应状态代码不可接受:403(代码:1,版本:1.14.2)

这是我的index.js

// Example express application adding the parse-server module to expose Parse
// compatible API routes.

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');

var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;
var S3Adapter = require('parse-server').S3Adapter;
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://MYSTUFF/app',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'APPID',
masterKey: process.env.MASTER_KEY || 'MASTER',
serverURL: process.env.SERVER_URL || 'https://fritchchurch.herokuapp.com/parse', // Don't forget to change to https if needed

filesAdapter: new S3Adapter(
process.env.AWS_ACCESS_KEY_ID || "KEYID",
process.env.AWS_SECRET_ACCESS_KEY || "ACCESSKEY",
process.env.BUCKET_NAME || "fritchdirectory",
{directAccess: true}

),

liveQuery: {
classNames: ["Users", "FritchDirectory"] // List of classes to support for query subscriptions
}

});

`

1 个答案:

答案 0 :(得分:0)

首先,您应该在解析服务器的初始化中设置文件密钥。没有它,它就无法访问:

fileKey: process.env.FILE_KEY || 'file_key',

此外,请确保为您在新的S3Adapter代码位中使用的AWS IAM用户正确设置了策略。这是我所遵循的:https://github.com/ParsePlatform/parse-server/wiki/Configuring-File-Adapters

希望这会涵盖它,尽管还有其他的东西。

我有这个问题的奇怪版本,我可以上传图片,但无法将其拉下来。每当我试图把它拉下来时,我都会得到这个:

2017-01-04 19:38:51.417576 Nomnomz[2711:2280806] [Error]: Response status code was unacceptable: 403 (Code: 1, Version: 1.12.0)

它可能是一些关联问题,它希望从Parse.com中提取照片,尽管我将它们上传到S3存储桶。不知道为什么。如果您有任何想法,请告诉我。

相关问题