Многие из нас сегодня зарегистрированы в различных сервисах для хранения/обмена/редактирования данных. Неудобствам нашего мультиопционального мира можно посвящать отдельную статью, однако сегодня мы предлагаем вам один из способов объединения аккаунтов во всем известных Dropbox, Google Drive и Box.
С недавних пор в модуле Документы TeamLab стала доступна функция «Добавить ресурс». Тем, кто еще не обратил внимание на это нововведение, советуем попробовать и по достоинству оценить наш Beta-сервис, позволяющий пользоваться документами из Dropbox, Box и Google Drive прямо на портале TeamLab. О том, как мы реализовывали интеграцию документов и какие возможности она предоставляет, читаем под катом.
Реализация
Интеграция документов со сторонних хранилищ реализована через свободно распространяемую библиотеку Sharpbox, предоставляющую интерфейсы и классы доступа к документам сторонних провайдеров через их публичные Api. Доступ к Dropbox и Box.com осуществляется через Dropbox Api и Webdav соответственно. Если говорить более конкретно, то мы добавили кэширование для документов и организовали прямой доступ к папкам и файлам для Dropbox. Иными словами, раньше чтобы получить доступ к папке папка_1/папка_2/папка_3 последовательно запрашивались папка_1 и папка_2, а затем уже папка_3. Теперь же процесс укладывается в один запрос. За счет этого мы существенно ускорили работу программы (по сравнению с первоначальным Sharpbox).
Доступ к Google Drive был сделан через его публичные Document List Api. Для подключения Google Drive пришлось несколько изменить структуру Sharpbox.
Дело в том, что в Google Drive:
-одна и та же папка может находится одновременно в нескольких папках
-в одной папке может находиться сразу несколько с одинаковым именем.
Мы сделали так, что доступ, который раньше осуществлялся по имени папки, теперь осуществляется по уникальному id, предоставляемому самим Google. При этом путь к папке состоит не из имя_1/имя_2/имя_3, а из id_1/id_2/id_3. По умолчанию id берется равным имени, поэтому данное изменение не влияет на работу других провайдеров.
Eсли с Google и Dropbox проблем не возникло, то вот с Box все оказалось не совсем гладко. Эмпирическим путём выяснили, что при создании файла/документа через WebDAV протокол Box.net «отрезает» из названия все кириллические символы до первого ASCII символа. Такая ситуация не возникает при подлючении других WebDAV провайдеров, к примеру Яндекс.ДИСК. Для устранения проблемы планируем переписать провайдера для Box.net через API.
Профит
Интеграция документов позволяет пользователю:
- редактировать документы из вышеперечисленных сервисов прямо на портале TeamLab;
- предоставлять другим пользователям сиюминутный доступ к документам, хранящимся в Google Drive, Dropbox и Box;
- перемещать документы из одного сервиса в другой; копировать появившиеся в результате добавления ресурсов папки в требуемую директорию.
Nota Bene
-пользователь в любой момент может отключить любой из ресурсов с портала;
-действия, которые вы выполняете с документами из папок сторонних ресурсов на портале, напрямую производятся в исходной папке того или иного сервиса;
-удаление файла из исходной папки приведет к его потере и на портале (он минует корзину).
А от вас, как всегда, ждем пожеланий и любых комментариев, тем более интеграция доступна пока в тестовом режиме.
Автор: Bargi