сервер разбора file_key не работает

Около 6 недель я пытался выяснить, как решить мою проблему с Parse Server и моими устаревшими PFFiles. Я не собираюсь переносить устаревшие файлы PFFiles, просто использую их при тестировании и разработке, пока Parse их поддерживает. После тестирования установлю файловый адаптер S3.

Мое приложение под управлением IOS 9.3 написано на языке Objective C, хранит изображения и видео и отлично работает при подключении к сайту Parse.com. Я хотел протестировать его с сервером Parse и постепенно исправлять проблемы по мере завершения миграции. Однако мне не удалось исправить (кажущуюся простой) ошибку, возникающую с сообщением {"code":1,"message":"Внутренняя ошибка сервера."}.

Мой MongoDb связан с mLab, и я соответствующим образом включил его URI (и логин) и ключ файла из разбора по мере необходимости. У меня есть информация в моем файле app.config, в среде моего экземпляра сервера синтаксического анализа на AWS и в соответствующих ссылках на данные среды через мой файл index.js.

Если я запрашиваю коллекцию, в которой нет элементов PFFile, то запрос выполняется успешно (т.е. нормально). Однако, если я запрашиваю коллекцию, содержащую PFFiles, запрос завершается с ошибкой {"code":1,"message":"Внутренняя ошибка сервера."}. Я не могу получить даже 1 запись такого неудачного запроса, даже если я использовал SelectKey в попытке обойти объекты PFFile.

Запрос:

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 для экземпляра nodeS на EC2.

Кроме того, хотя это и излишне, я включил параметр FILE_KEY в файл app.config (примера parse-server).

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 — это префикс для PFFILE, хранящегося на S3 с помощью Parse, и, вероятно, это имя корзины.

Поскольку ни у кого, кажется, нет моей проблемы, это, должно быть, результат серьезного упущения с моей стороны.

Тем не менее, может ли кто-нибудь помочь?


person digitalR    schedule 25.05.2016    source источник


Ответы (1)


Ваша проблема, возможно, уже решена, но ваша переменная ключа файла в инициализации сервера синтаксического анализа выглядит в нижнем регистре, что неверно. Это должно быть fileKey вместо файла.

person user3404693    schedule 16.08.2016
comment
К тому времени, когда я просмотрел этот ответ, я нахожусь на чем-то другом. Но, скорее всего, это указало на источник моего предыдущего разочарования. Лучше поздно, чем никогда. Спасибо пользователю 3404693. - person digitalR; 09.05.2017