S3 映像不会显示在解析服务器上



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

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

这是我的索引.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
}
});

'

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

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 存储桶。不知道为什么。如果您有想法,请告诉我。

最新更新