Я создаю веб-приложение только на стороне клиента, которое представляет собой текстовый процессор определенного типа, поэтому пользователю нужно будет сохранять / загружать файлы. Я хочу добавить популярный вариант облачного хранилища (например, Dropbox, Drive), который должен предоставлять следующие особые функции:
- Открыть: позволить пользователю просмотреть свой облачный диск и выбрать файл для открытия, а затем передать приложению содержимое файла и метаданные.
- Сохранить как ...: позвольте пользователю просмотреть свое облачное хранилище и выбрать папку и имя файла, затем взять содержимое файла и метаданные из приложения и сохранить их там.
- Сохранить: не открывать диалоговое окно облачного хранилища пользователя; просто возьмите обновленное содержимое файла и метаданные из приложения и сохраните их в том же месте, что и в прошлый раз.
Предоставлять услуги управления файлами не нужно, потому что пользователь может использовать для этого основной веб-интерфейс облачного хранилища.
Основной вопрос: есть ли простой / эффективный способ решить эту проблему? Я хочу писать и поддерживать как можно меньше кода. Существующая библиотека была бы замечательной, но также приемлемы и другие простые методы решения.
Что я исследовал перед публикацией:
- В настоящее время я использую написанную мной библиотеку, предназначенную только для хранения в браузере, и я мог бы сделать куча работы по расширению его для поддержки облачных API, но я надеюсь, что есть более простой способ.
- Dropbox предоставляет Chooser и Saver, которые очень просты в использовании, но удовлетворяют только требованиям 1 и 2, а не 3.
- Kloudless кажется отличной межсервисной платформой, но я думаю, что она тоже обрабатывает только требования. 1 и 2, а не 3.
- Dropbox также предоставляет полный API, но не предоставляет диалогов; вы должны сами создать пользовательский интерфейс для просмотра файлов. Та же история и с Google Диском.
- Для отображения красивых файлов существует тонна других клиентских библиотек. диалоговые окна браузера, но большинство из них обрабатывают все события с AJAX на сервере. Мое приложение предназначено только для клиента.