Сервер синтаксического анализа — нет доступа к изображениям

У меня есть сервер Parse, работающий поверх MongoDB, и он работает на 100% нормально на моем сервере разработки, размещенном в DigitalOcean. Здесь я могу отправить GET запросов на свой сервер для получения изображения, а также получить доступ к изображению через его Parse-Dashboard.

Я клонировал эту каплю, чтобы настроить рабочий сервер, и все работает нормально... За исключением, я не могу получить доступ к изображениям из Parse, которые были либо клонированы с сервера разработки, либо те, которые я загружен после того, как я инициализировал новый производственный сервер. Я могу отправить GET запросов для получения всех остальных полей, кроме файлов изображений. Я также не могу получить доступ к файлу изображения через Parse-Dashboard — он возвращает ошибку 404 - Oh no, we can't find that page! по следующему URL-адресу: http://server.ip/parse/files/ProdServer/de632aeb61f7265926e554fabfb25180_image1.png

Другие ключевые моменты, на которые стоит обратить внимание:

  1. Сервер разработки размещается в домене с SSL; может ли это быть проблема с SSL?
  2. Я инициализирую панель синтаксического анализа с флагом --allowInsecureHTTP
  3. Все (даже до SSL) заранее работало на Dev Server
  4. все пакеты + зависимости обновлены

tl;dr

Как получить доступ к файлам изображений с моего сервера Parse, через Parse-Dashboard или запрос GET?


person Steven_    schedule 01.05.2017    source источник
comment
Сравните URL-адреса изображений при работе как локально, так и на удаленном сервере. Они одинаковы? Возможно, это ссылка на ваш локальный сервер?   -  person Jake T.    schedule 02.05.2017
comment
они одинаковы, за исключением IP-адреса. Хотите знать, хранит ли Parse Server изображения локально в определенном каталоге? @ ДжейкТ.   -  person Steven_    schedule 02.05.2017
comment
Это зависит от того, как вы настроили хранилище файлов. Если бы вы не настроили хранилище, я не уверен, что произойдет. Я никогда не пробовал. Настройка S3 была одной из первых вещей, которые я сделал с помощью parse-server. Если вы настроили что-то, но оно не использовало внешние ресурсы, и вы можете тянуть файлы, то да, это доступно только локально. Я бы порекомендовал что-то внешнее, когда вы уходите от разработки.   -  person Jake T.    schedule 02.05.2017
comment
да, вот что я пытаюсь понять; где это локально/как хранится?   -  person Steven_    schedule 02.05.2017
comment
В любом случае я бы рекомендовал не использовать локальное хранилище файлов. Лучше всего подходит S3, и для него даже есть адаптер parse-sever, который легко настроить. Я бы пошел по этому пути. Я ничего не знаю о каком-либо локальном файловом хранилище из коробки, но я бы не стал доверять его сохранению.   -  person Jake T.    schedule 02.05.2017
comment
github.com/parse- community/parse-server/blob/master/src/ проверьте свои конфигурации при запуске сервера для файлового адаптера, тогда это скажет вам, куда идут файлы. Я думаю, что по умолчанию используется локальный монго на порту 2700n.   -  person Robert Rowntree    schedule 02.05.2017


Ответы (1)


Несколько методов, которые я пробовал... Поскольку для меня это был сложный процесс, позвольте мне задокументировать методы, которые я пытался решить этой проблемой:

Первой проблемой было существуют ли файлы? Если да, то где они хранятся?

Получив доступ к моей панели синтаксического анализа через порт 4040, я попытался просмотреть путь к изображению через URL-адрес... Итак, я знал, что он где-то существует, и я рекурсивно искал путь к файлу на всем своем сервере, но безрезультатно.

Затем, проведя дополнительные исследования, я обнаружил, что любой файл размером более 16 МБ преобразуется в объект GridFS. т. е. изображения хранятся в моей MongoDB. Доступ к этим объектам осуществляется с помощью утилиты под названием mongofiles.

Запустив mongofiles -d dbname list, я смог просмотреть в виде списка все изображения, хранящиеся на моем Parse-Server.

чтобы убедиться, что изображения не повреждены...

Я также отправил изображения по sftp на свою локальную машину и, к счастью, смог их просмотреть. Итак, проблема заключалась в том, что изображения не обслуживались правильно...

Следующая проблема заключалась в том, почему изображения не отображаются правильно?

Таким образом, моя панель синтаксического анализа обслуживалась на порту 4040, но по какой-то причине путь к моему файлу изображения в соответствующих URL-адресах предварялся тем же портом 4040... Оказывается, в моей конфигурации Parse-Server синтаксический анализ URL-адрес сервера указывал на порт 4040, но обслуживался на ****. Изменив мой URL обратно на ****, мои изображения смогли правильно отображаться на моей панели синтаксического анализа, и я также смог отправлять http-запросы для изображений :)


tl;dr убедитесь, что путь к вашему файлу изображения обслуживается на том же порту, что и ваш сервер синтаксического анализа.

person Steven_    schedule 04.05.2017
comment
Эй, мужик! Не могли бы вы проверить мой случай? stackoverflow.com/questions/52569868/ - person Sotiris Kaniras; 29.09.2018