S3图像不会在解析服务器上显示
问题描述:
我已将我的应用程序迁移到mongo和heroku。我现在正在努力确保所有的PFFiles,这些都是图像,都被迁移到我的S3。我浏览了教程和代码,并验证了我的照片出现在S3存储桶中,并且mongoDb更新了它们的名称。然而,当我运行的应用程序,并尝试查看的图片,我得到这样的:S3图像不会在解析服务器上显示
[错误]:响应状态代码是不可接受的: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
}
});
`
答
第一件事,第一,你应该设置你的解析服务器的初始化文件密钥。它不会没有访问:
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桶。不知道为什么。让我知道你是否有想法。