From 713c9983dd7046ba3d12e6669045da564ae62f11 Mon Sep 17 00:00:00 2001 From: Anton Date: Sun, 4 Feb 2024 19:14:19 +0300 Subject: [PATCH] =?UTF-8?q?Yandex=20Disk:=20=D1=81=D0=BE=D1=85=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D1=87=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonModules/OPI_YandexDisk/Module.bsl | 64 ++++++++++++++++++- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/OPI/src/CommonModules/OPI_YandexDisk/Module.bsl b/OPI/src/CommonModules/OPI_YandexDisk/Module.bsl index 4825d7132c..9b31d91452 100644 --- a/OPI/src/CommonModules/OPI_YandexDisk/Module.bsl +++ b/OPI/src/CommonModules/OPI_YandexDisk/Module.bsl @@ -326,12 +326,12 @@ // // Параметры: // Токен - Строка - Токен -// URL - Строка - URL +// URL - Строка - Адрес объекта // Количество - Число - Количество возвращаемых вложенных объектов (для каталога) // СмещениеОтНачала - Число - Смещение для получение вложенных объектов не из начала списка // // Возвращаемое значение: -// Строка, Произвольный, ДвоичныеДанные, Неопределено - Получить публичный объект +// Строка, Произвольный, ДвоичныеДанные, Неопределено - Ответ сервера Yandex Функция ПолучитьПубличныйОбъект(Знач Токен, Знач URL, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт Заголовки = ЗаголовокАвторизации(Токен); @@ -354,6 +354,66 @@ КонецФункции +// Получить ссылку скачивания публичного объекта. +// +// Параметры: +// Токен - Строка - Токен +// URL - Строка - Адрес объекта +// Путь - Строка - Путь +// +// Возвращаемое значение: +// Строка, Произвольный, ДвоичныеДанные, Неопределено - Ответ сервера Yandex +Функция ПолучитьСсылкуСкачиванияПубличногоОбъекта(Знач Токен, Знач URL, Знач Путь = "") Экспорт + + Заголовки = ЗаголовокАвторизации(Токен); + + Параметры = Новый Структура; + + Если ЗначениеЗаполнено(Путь) Тогда + Параметры.Вставить("path", Путь); + КонецЕсли; + + Параметры.Вставить("public_key", URL); + + Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/public/resources/download", Параметры, Заголовки); + + Возврат Ответ; + +КонецФункции + +// Сохранить публичный объект на диск. +// +// Параметры: +// Токен - Строка - Токен +// URL - Строка - Адрес объекта +// Откуда - Строка - Путь внутри публичного каталога (только для папок) +// Куда - Строка - Путь сохранения файла +// +// Возвращаемое значение: +// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - Ответ сервера Yandex +Функция СохранитьПубличныйОбъектНаДиск(Знач Токен, Знач URL, Откуда = "", Куда = "") Экспорт + + Заголовки = ЗаголовокАвторизации(Токен); + Адрес = "https://cloud-api.yandex.net/v1/disk/public/resources/save-to-disk"; + + Параметры = Новый Структура; + Параметры.Вставить("public_key", URL); + + Если ЗначениеЗаполнено(Откуда) Тогда + Параметры.Вставить("path", Откуда); + КонецЕсли; + + Если ЗначениеЗаполнено(Куда) Тогда + Параметры.Вставить("save_path", Куда); + КонецЕсли; + + Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры); + Ответ = OPI_Инструменты.Post(Адрес + Параметры, , Заголовки, Ложь); + + Возврат Ответ; + +КонецФункции + #КонецОбласти #КонецОбласти