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.