Pull to refresh

Comments 19

UFO just landed and posted this here

Не совсем понял, оно каждого пользователя просит залогиниться в его собственный Google Drive? Или работает просто как бэкэнд и абсолютно невидимо для пользователя? Если второе, то используется аккуант разработчика? Как тогда разграничивать где чьи данные? Был бы очень рад увидеть пример реального использования.

Первое. Пользователь логинится в свой Google акк, и приложение хранит свои данные на пользовательском G-диске.
Судя по всему, приложение перед инициализацией просит каждого пользователя авторизоваться в GoogleDrive и хранит все данные в облаке пользователя.
Да, как уже заметили другие, данные каждого пользователя хранятся на его собственном Гугл-диске. То есть, у пользователя должен быть свой гугл-аккаунт.

Я бы хотел дать пример реального использования. Но, если я правильно понял правила Хабра, это было бы расценено как реклама собственного проекта.

Ну в комментариях ссылку уж точно можно :-)


Одно дело когда почти весь текст "купи! по ссылке" — это будет реклама. Другое дело, когда у вас однократно встретится "код реального проекта на гитхабе смотреть здесь, посмотреть вживую тут". Такое даже в основной текст внести можно.

Добавил ссылки в статью. Попробовать проект можно здесь, а код лежит там.
По новым правилам свои проекты можно рекламировать (в разумных пределах)

Огромное спасибо за статью!


А всё-таки, что было не так с remoteStorage?

Там целый спектр проблем. Хотя, возможно, я просто не умею его готовить. Но, вкратце, причины следующие:

  1. Собственный хостинг работает очень плохо. Точнее, сам remoteStorage не предоставляет хостинга, а рекомендует пользоваться сервисами третьих сторон, которые установили их (открытое) серверное ПО. Сейчас из бесплатных вариантов доступен только один: 5apps. Я просидел на нем около пары недель, и даже за такое короткое время успел устать от постоянных проблем (непредсказуемо тормозит, часто недоступен).
  2. Интеграция с Гуглом оставляет желать лучшего. Проблема, которая меня «добила»: каждый час надо «перелогиниваться» (то есть снова открывается окно Гугла). Это было совершенно неприемлемо. Я завел тикет на Гитхабе, на что получил ответ, что других вариантов нет (это не так). Такое поведение библиотеки серьезно воспринимать нельзя, это просто издевательство над пользователем.
  3. remoteStorage.js не дает гибкого управления синхронизацией. Например, мое приложение хранит много очень маленьких файлов на Google Drive, и в определенные моменты времени мне нужно быстро взять определенный файл. Но поскольку я не контролирую порядок, в котором они синхронизируются (а делается это по одному файлу за раз), актуальное состояние данного конкретного файла я могу получить только через 5-10-15 минут (а могу и сразу, это как повезет)
  4. remoteStorage.js не использует application data folder, и вместо этого создает файлы в видимом для пользователя пространстве (папка remotestorage в корне вашего гугл-диска, а в ней папка с названием вашего проекта). Это очень неудобно, особенно если файлов много.
  5. remoteStorage.js иногда создает две папки remotestorage, внутри которых по две папки вашего проекта. Видимо, какие-то баги. Меня это раздражало.


Звучит кошмарно. Спасибо.

На гитхабе есть проект с похожей штукой, но там это только для админа, а не для всех пользователей: https://github.com/misterfresh/react-drive-cms.

Тоже Github Pages, тоже Google Drive. Еще интересно, что у него в этом репо Реакт работает без Webpack (я так и нашел его).

В общем, оставляю ссылку, может кому-то интересно будет)
Еще интересно, что у него в этом репо Реакт работает без Webpack (я так и нашел его).

Мне тоже стало интересно, покопал. Магия находится вот в этом файле. В проекте используется сервер, который процессит файлы через babel на лету перед отдачей пользователю

Не обязательно объявлять функцию prom асинхронной. Она никакую асинхронную работу не выполняет, только сразу возвращает Promise.
Sign up to leave a comment.

Articles