Содержание:
1. Подготовка к работе с облачным хранилищем Яндекс
Часто перед разработчиком стоит задача – хранение информации вне устройства. Будь то персональный компьютер или мобильное приложение всегда есть необходимость передавать информацию. Например, для обмена или резервирования. Один из способов сделать это – использовать облачные хранилища данных. Сегодня мы обсудим работу с одним из них – с облачным хранилищем Яндекс.
Яндекс.Диск – один из самых популярных сервисов для хранения файлов. Разработчикам (не только 1С) предоставляется два варианта работы с этим хранилищем, используя WebDav yandex и через RESTAPI.
Коротко о том, что это за механизмы:
- WebDav – это, по сути, расширение к протоколу http, которое позволяет выполнять файловые операции соответствующими методами запроса;
- RESTAPI – это простой веб интерфейс с определенным набором команд. Набор команд определяет сам разработчик, в нашем случае - Яндекс.Диск.
Рассмотрим оба этих механизма применимо к 1С.
1. Подготовка к работе с облачным хранилищем Яндекс
Яндекс предлагает в документации использовать OAuth для авторизации. Для этого нам нужно выполнить несколько не сложных шагов:
1) зарегистрировать свое приложение на «oauth.yandex.ru».
2) дать права приложению. Можно для экспериментов выделить все для Яндекс.Диск REST API и Яндекс.Диск WebDAV API. И получить ID приложения yandex.
3) Используя полученный ID в ссылке «oauth.yandex.ru/authorize?response_type=token&client_id=ID_приложения»
получить токен доступа. Сохраняем его в надежном месте. Далее его будем использовать для авторизации. Уточню, токен действует один год. Также пункт 3 можно выполнять непосредственно на устройстве, которое будет получать доступ. Но здесь мы этот случай рассматривать не будем.
2. Yandex WebDav и RESTAPI
WebDav
Самый простой способ, если надо организовать все быстро, без лишнего кода и с минимумом действий.
Берем строку шаблон https://%user%:%password%@webdav.yandex.ru/%Каталог%/
Вписываем свои логин, пароль и каталог.
Используем метод глобального контекста КопироватьФайл()
Меняя местами путь к локальному файлу и полный путь к файлу на яндексе, получаем обратное направление транспорта файла; либо на яндекс, либо из яндекса.
Вот так просто!
RESTAPI
Здесь уже придется немного покодить.
Начнем с копирования на Яндекс.
Нам нужно создать соединение с cloud-api.yandex.net, используя токен полученный ранее, авторизоваться и указать куда мы хотим отправить файл. Например:
В ответ мы получим ссылку, которую нужно использовать для передачи файла (данные).
Скачанные файлы в Яндексе:
Здесь почти все тоже самое за исключением строки с параметрами запроса и того, что ссылка может быть перенаправлена. Смотрим, как это выглядит.
А вот что содержит функция ПолучитьФайлПоСсылке():
Приведенным примером можно воспользоваться и для реализации других методов взаимодействия и хранения на Яндекс.диске.
Подводя итог, могу сказать, что для простого копирования файлов достаточно использовать WebDav, но если требуются дополнительные возможности, тогда уж придется осваивать RESTAPI при работе в облаке.
Специалист компании ООО «Кодерлайн»
Вадим Хоменко