我已经尝试了大约6周的时间来了解如何解决Parse Server和我的传统PFFiles的问题。我不打算迁移传统的PFFiles,只是在Parse维护时使用它们进行测试和开发。测试后,我将安装一个S3文件适配器。
运行IOS 9.3的我的应用程序是用Objective C编写的,可存储图像和视频,并在连接到Parse.com网站时运行正常。我想用Parse Server测试它,并在完成迁移时逐步纠正问题。但是,我无法纠正消息{"代码":1,"消息":"内部服务器错误。)发生的(看似简单的)故障。 #34;}
我的MongoDb使用了mLab,我根据需要适当地包含了它的URI(和登录名)以及解析的文件密钥。我在app.config文件中,在AWS上的解析服务器实例的环境中以及通过我的index.js文件对环境数据的适当引用中有信息。
如果我查询没有PFFile项的集合,则查询成功(即正常)。但是,如果我查询具有PFFiles的集合,则查询将失败并显示{"代码":1,"消息":"内部服务器错误。"}。即使在我使用SelectKey试图绕过PFFile对象时,我甚至无法检索这样一个失败查询的1条记录。
查询是:
PFQuery query = [PFQuery queryWithClassName:CLASSNAME];
query.cachePolicy = kPFCachePolicyNetworkOnly;
[query whereKey:USERNAME equalTo:[[PFUser currentUser]username]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
if (!error)
{
...
}
else NSLog(@" %@", error);
}];
在我的测试中,我希望能够检索遗留文件并使用这些遗留数据测试应用程序,这些数据应该很容易获得(根据Parse.com的说法)。
在我的index.js中,我包含了我的Parse fileKey:
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed
filekey: process.env.FILE_KEY || 'no file key',
liveQuery: {
classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
}
});
我已将环境密钥FILE_KEY设置为EC2上的nodeS实例。
此外,虽然它是多余的,但我在app.config文件中包含了一个FILE_KEY参数(parse-server-example)。
option_settings:
aws:elasticbeanstalk:application:environment:
PARSE_MOUNT: "/parse"
APP_ID: "ReplaceWithAppID"
MASTER_KEY: "ReplaceWithMasterKey"
DATABASE_URI: "ReplaceWithDatabaseURI"
NODE_ENV: "production"
SERVER_URL: "http://myappname.elasticbeanstalk.com/parse"
FILE_KEY: "Parse Filekey"
aws:elasticbeanstalk:container:nodejs:
NodeCommand: "npm start"
我已经研究过以前的帖子和论坛,并查看了Parse IOS SDK源代码。
我意识到fileKey是Parse存储在S3上的PFFILE的前缀,很可能是存储桶名称。
由于似乎没有人遇到我的问题,因此必须是我的重大监督的结果。
但是,有人可以帮忙吗?