file_key 解析服务器不工作
file_key parse server does not work
我已经尝试了大约 6 周的时间来找出如何解决我的 Parse Server 和遗留 PFFiles 问题。我不打算迁移遗留的 PFFiles,只是为了在测试和开发中使用它们,而 Parse 维护它们。测试后,我将安装一个 S3 文件适配器。
我的应用程序 运行 IOS 9.3 是用 Objective C 编写的,可以存储图像和视频,并且在连接到 Parse.com 站点时运行良好。我想用 Parse Server 对其进行测试,并在完成迁移后逐步纠正问题。但是,我无法纠正消息 {"code":1,"message":"Internal server error."}.
出现的(看似简单的)故障
我的 MongoDb 与 mLab 一起使用,我已经根据需要适当地包含了它的 URI(和登录名)和来自解析的文件密钥。我的 app.config 文件中有这些信息,在 AWS 上我的解析服务器实例的环境中,以及通过我的 index.js 文件对环境数据的适当引用中。
如果我查询一个没有PFFile项的集合,那么查询成功(即正常)。但是,如果我查询具有 PFFiles 的集合,则查询失败并显示 {"code":1,"message":"Internal server error."}。即使我使用 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 文件密钥:
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
}
});
我已将 EC2 上的 nodeS 实例的环境密钥 FILE_KEY 设置为 in。
此外,虽然它是多余的,但我在 app.config 文件(parse-server-example)中包含了一个 FILE_KEY 参数。
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的前缀,很可能是bucket的名字。
由于似乎没有人遇到我的问题,这一定是我疏忽大意的结果。
但是,有人可以帮忙吗?
你的问题现在可能已经解决了,但是你在解析服务器初始化中的文件键变量似乎是小写的,这是不正确的。它应该是 fileKey
而不是 filekey.
我已经尝试了大约 6 周的时间来找出如何解决我的 Parse Server 和遗留 PFFiles 问题。我不打算迁移遗留的 PFFiles,只是为了在测试和开发中使用它们,而 Parse 维护它们。测试后,我将安装一个 S3 文件适配器。
我的应用程序 运行 IOS 9.3 是用 Objective C 编写的,可以存储图像和视频,并且在连接到 Parse.com 站点时运行良好。我想用 Parse Server 对其进行测试,并在完成迁移后逐步纠正问题。但是,我无法纠正消息 {"code":1,"message":"Internal server error."}.
出现的(看似简单的)故障我的 MongoDb 与 mLab 一起使用,我已经根据需要适当地包含了它的 URI(和登录名)和来自解析的文件密钥。我的 app.config 文件中有这些信息,在 AWS 上我的解析服务器实例的环境中,以及通过我的 index.js 文件对环境数据的适当引用中。
如果我查询一个没有PFFile项的集合,那么查询成功(即正常)。但是,如果我查询具有 PFFiles 的集合,则查询失败并显示 {"code":1,"message":"Internal server error."}。即使我使用 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 文件密钥:
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
}
});
我已将 EC2 上的 nodeS 实例的环境密钥 FILE_KEY 设置为 in。
此外,虽然它是多余的,但我在 app.config 文件(parse-server-example)中包含了一个 FILE_KEY 参数。
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的前缀,很可能是bucket的名字。
由于似乎没有人遇到我的问题,这一定是我疏忽大意的结果。
但是,有人可以帮忙吗?
你的问题现在可能已经解决了,但是你在解析服务器初始化中的文件键变量似乎是小写的,这是不正确的。它应该是 fileKey
而不是 filekey.