2024-05-12 16:00:02 +02:00
|
|
|
// Расположение OS: ./OInt/core/Modules/OPI_YandexDisk.os
|
|
|
|
// Библиотека: Yandex Disk
|
2024-04-22 19:28:06 +02:00
|
|
|
// Команда CLI: yadisk
|
|
|
|
|
|
|
|
// MIT License
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
// Copyright (c) 2023 Anton Tsitavets
|
|
|
|
|
|
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
|
|
// in the Software without restriction, including without limitation the rights
|
|
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
|
|
// furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
// The above copyright notice and this permission notice shall be included in all
|
|
|
|
// copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
// SOFTWARE.
|
|
|
|
|
|
|
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
|
|
|
|
2024-03-14 22:08:51 +02:00
|
|
|
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
|
|
|
// BSLLS:IncorrectLineBreak-off
|
2024-03-17 13:51:56 +02:00
|
|
|
// BSLLS:NumberOfOptionalParams-off
|
|
|
|
// BSLLS:UsingServiceTag-off
|
|
|
|
|
|
|
|
//@skip-check method-too-many-params
|
2024-03-14 22:08:51 +02:00
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
// Раскомментировать, если выполняется OneScript
|
|
|
|
#Использовать "../../tools"
|
|
|
|
|
|
|
|
#Область ПрограммныйИнтерфейс
|
|
|
|
|
|
|
|
#Область РаботаСФайламиИПапками
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получить информацию о диске
|
|
|
|
// Получает информацию о текущем диске
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьИнформациюОДиске(Знач Токен) Экспорт
|
2024-03-22 15:30:40 +02:00
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
|
2024-03-22 15:30:40 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk", , Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Создать папку
|
|
|
|
// Создает каталог на диске
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь к созаваемой папке - path
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
|
2024-03-22 15:30:40 +02:00
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
|
2024-03-22 15:30:40 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
URL = "https://cloud-api.yandex.net/v1/disk/resources";
|
|
|
|
Href = "href";
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("path", Путь);
|
|
|
|
|
|
|
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
|
|
|
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
|
2024-03-14 13:54:45 +02:00
|
|
|
|
2024-04-02 16:24:17 +02:00
|
|
|
URLОтвета = Ответ[Href];
|
|
|
|
|
|
|
|
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
2024-03-14 13:54:45 +02:00
|
|
|
|
2024-03-22 15:30:40 +02:00
|
|
|
Возврат Ответ;
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получить объект
|
|
|
|
// Получает информацию об объекте диска по заданному пути
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь к папке или файлу - path
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьОбъект(Знач Токен, Знач Путь) Экспорт
|
2024-03-22 15:30:40 +02:00
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
|
2024-03-22 15:30:40 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("path", Путь);
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Удалить объект
|
|
|
|
// Удаляет объект по заданному пути
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь к удаляемой папке или файлу - path
|
|
|
|
// ВКорзину - Булево - В корзину - can
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач ВКорзину = Истина) Экспорт
|
2024-03-22 15:30:40 +02:00
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(ВКорзину);
|
|
|
|
|
2024-03-22 15:30:40 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("path" , Путь);
|
|
|
|
Параметры.Вставить("permanently", Не ВКорзину);
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Создать копию объекта
|
|
|
|
// Создает копию объекта по заданному пути и пути к оригиналу
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Оригинал - Строка - Путь к оригинальному файлу или каталогу - from
|
|
|
|
// Путь - Строка - Путь назначения для копии - to
|
|
|
|
// Перезаписывать - Булево - Перезаписывать если файл с таким именем уже существует - rewrite
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция СоздатьКопиюОбъекта(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
URL = "https://cloud-api.yandex.net/v1/disk/resources/copy";
|
|
|
|
Href = "href";
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("from" , Оригинал);
|
|
|
|
Параметры.Вставить("path" , Путь);
|
|
|
|
Параметры.Вставить("overwrite" , Перезаписывать);
|
|
|
|
|
|
|
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
|
|
|
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
|
|
|
|
2024-04-02 16:24:17 +02:00
|
|
|
URLОтвета = Ответ[Href];
|
|
|
|
|
|
|
|
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получить ссылку для скачивания
|
|
|
|
// Получает ссылку для скачивания файла
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
2024-04-13 19:08:38 +02:00
|
|
|
// Путь - Строка - Путь к файлу для скачивания - path
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьСсылкуДляСкачивания(Знач Токен, Знач Путь) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("path", Путь);
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/download", Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-17 09:44:32 +02:00
|
|
|
// Скачать файл
|
|
|
|
// Скачивает файл по указанному пути
|
|
|
|
//
|
|
|
|
// Параметры:
|
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь к файлу для скачивания - path
|
|
|
|
// ПутьСохранения - Строка - Путь сохранения файла - out
|
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
|
|
|
// ДвоичныеДанные,Строка - Двоичные данные или путь к файлу при указании параметра ПутьСохранения
|
|
|
|
Функция СкачатьФайл(Знач Токен, Знач Путь, Знач ПутьСохранения = "") Экспорт
|
|
|
|
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьСохранения);
|
|
|
|
Ответ = ПолучитьСсылкуДляСкачивания(Токен, Путь);
|
|
|
|
URL = Ответ["href"];
|
|
|
|
|
|
|
|
Если Не ЗначениеЗаполнено(URL) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get(URL, , , ПутьСохранения);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получить список файлов
|
|
|
|
// Получает список файлов с или без отбора по типу
|
|
|
|
// Список доступных типов: audio, backup, book, compressed, data, development,
|
|
|
|
// diskimage, document, encoded, executable, flash, font,
|
|
|
|
// mage, settings, spreadsheet, text, unknown, video, web
|
|
|
|
//
|
2024-03-14 13:54:45 +02:00
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Количество - Число,Строка - Количество возвращаемых объектов - amount
|
|
|
|
// СмещениеОтНачала - Число - Смещение для получение объектов не из начала списка - offset
|
|
|
|
// ОтборПоТипу - Строка - Отбор по типу файла - type
|
|
|
|
// СортироватьПоДате - Булево - Истина > сортировать по дате, Ложь > по алфавиту - datesort
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьСписокФайлов(Знач Токен
|
|
|
|
, Знач Количество = 0
|
|
|
|
, Знач СмещениеОтНачала = 0
|
|
|
|
, Знач ОтборПоТипу = ""
|
|
|
|
, Знач СортироватьПоДате = Ложь) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(ОтборПоТипу);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(СортироватьПоДате);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(Количество) Тогда
|
|
|
|
Параметры.Вставить("limit", OPI_Инструменты.ЧислоВСтроку(Количество));
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(СмещениеОтНачала) Тогда
|
|
|
|
Параметры.Вставить("offset", OPI_Инструменты.ЧислоВСтроку(СмещениеОтНачала));
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(ОтборПоТипу) Тогда
|
|
|
|
Параметры.Вставить("media_type", ОтборПоТипу);
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Если СортироватьПоДате Тогда
|
|
|
|
Назначение = "last-uploaded";
|
|
|
|
Иначе
|
|
|
|
Назначение = "files";
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/" + Назначение, Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Переместить объект
|
|
|
|
// Перемещает объект по заданному пути и пути к оригиналу
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Оригинал - Строка - Путь к оригинальному файлу или папке - from
|
2024-04-03 21:27:11 +02:00
|
|
|
// Путь - Строка - Путь назначение для перемещения - to
|
2024-04-03 12:46:08 +02:00
|
|
|
// Перезаписывать - Булево - Перезаписывать если файл с таким именем уже существует - rewrite
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПереместитьОбъект(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
|
2024-04-01 21:22:19 +02:00
|
|
|
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
|
2024-03-14 13:54:45 +02:00
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
|
|
|
|
Href = "href";
|
2024-03-14 13:54:45 +02:00
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("from" , Оригинал);
|
|
|
|
Параметры.Вставить("path" , Путь);
|
|
|
|
Параметры.Вставить("overwrite" , Перезаписывать);
|
|
|
|
|
|
|
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
|
|
|
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
|
|
|
URLОтвета = Ответ[Href];
|
|
|
|
|
2024-04-02 16:24:17 +02:00
|
|
|
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
2024-04-01 21:22:19 +02:00
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Загрузить файл
|
|
|
|
// Загружает файл на диск по заданному пути
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь для сохранение файла на Диске - path
|
|
|
|
// Файл - Строка,ДвоичныеДанные - Файл для загрузки - file
|
|
|
|
// Перезаписывать - Булево - Перезаписывать, если файл с таким именем уже существует - rewrite
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Файл, Знач Перезаписывать = Ложь) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
|
2024-03-30 13:10:07 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
2024-03-30 13:10:07 +02:00
|
|
|
Href = "href";
|
2024-03-14 13:54:45 +02:00
|
|
|
Файл = Новый Структура("file", Файл);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("path" , Путь);
|
|
|
|
Параметры.Вставить("overwrite" , Перезаписывать);
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/upload", Параметры, Заголовки);
|
|
|
|
URL = Ответ[Href];
|
2024-04-02 16:24:17 +02:00
|
|
|
|
|
|
|
Если Не ЗначениеЗаполнено(URL) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Ответ = OPI_Инструменты.PutMultipart(URL, Новый Структура(), Файл, "multipart", Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Загрузить файл по URL
|
|
|
|
// Загружает файл на диск, забирая его по заданному URL
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь помещения загруженного файла - path
|
|
|
|
// Адрес - Строка - URL файла - url
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ЗагрузитьФайлПоURL(Знач Токен, Знач Путь, Знач Адрес) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
URL = "https://cloud-api.yandex.net/v1/disk/resources/upload";
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
2024-03-22 15:30:40 +02:00
|
|
|
Параметры.Вставить("url" , КодироватьСтроку(Адрес, СпособКодированияСтроки.URLВКодировкеURL));
|
|
|
|
Параметры.Вставить("path", Путь);
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
|
|
|
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
|
|
|
#КонецОбласти
|
|
|
|
|
|
|
|
#Область УправлениеПубличнымДоступом
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Опубликовать объект
|
|
|
|
// Публикует объект диска в публичный доступ
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь к публикуемому объекту - path
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ОпубликоватьОбъект(Знач Токен, Знач Путь) Экспорт
|
|
|
|
Возврат ПереключениеОбщегоДоступа(Токен, Путь, Истина);
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Отменить публикацию объекта
|
|
|
|
// Отменяет публикацию ранее опубликованного объекта
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Путь - Строка - Путь к опубликованному ранее объекту - path
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ОтменитьПубликациюОбъекта(Знач Токен, Знач Путь) Экспорт
|
|
|
|
Возврат ПереключениеОбщегоДоступа(Токен, Путь, Ложь);
|
|
|
|
КонецФункции
|
|
|
|
|
|
|
|
// Получить список опубликованных объектов.
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получает список опубликованных объектов
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// Количество - Число - Количество возвращаемых объектов - amount
|
|
|
|
// СмещениеОтНачала - Число - Смещение для получение объектов не из начала списка - offset
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьСписокОпубликованныхОбъектов(Знач Токен, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(Количество) Тогда
|
2024-04-01 21:22:19 +02:00
|
|
|
Параметры.Вставить("limit", Количество);
|
2024-03-14 13:54:45 +02:00
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(СмещениеОтНачала) Тогда
|
2024-04-01 21:22:19 +02:00
|
|
|
Параметры.Вставить("offset", СмещениеОтНачала);
|
2024-03-14 13:54:45 +02:00
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/public", Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получить публичный объект
|
|
|
|
// Получает информацию об опубликованном объекте по его URL
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// URL - Строка - Адрес объекта - url
|
|
|
|
// Количество - Число - Количество возвращаемых вложенных объектов (для каталога) - amount
|
|
|
|
// СмещениеОтНачала - Число - Смещение для получение вложенных объектов не из начала списка - offset
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьПубличныйОбъект(Знач Токен, Знач URL, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(Количество) Тогда
|
|
|
|
Параметры.Вставить("limit", OPI_Инструменты.ЧислоВСтроку(Количество));
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(СмещениеОтНачала) Тогда
|
|
|
|
Параметры.Вставить("offset", OPI_Инструменты.ЧислоВСтроку(СмещениеОтНачала));
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Параметры.Вставить("public_key", URL);
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/public/resources", Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Получить ссылку скачивания публичного объекта
|
|
|
|
// Получает прямую ссылку для скачивания публичного объекта
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// URL - Строка - Адрес объекта - url
|
|
|
|
// Путь - Строка - Путь внутри объекта - path
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция ПолучитьСсылкуСкачиванияПубличногоОбъекта(Знач Токен, Знач URL, Знач Путь = "") Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(Путь) Тогда
|
|
|
|
Параметры.Вставить("path", Путь);
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Параметры.Вставить("public_key", URL);
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/public/resources/download", Параметры, Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
2024-04-03 12:46:08 +02:00
|
|
|
// Сохранить публичный объект на диск
|
|
|
|
// Сохраняет публичный объект на ваш диск
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Параметры:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Токен - Строка - Токен - token
|
|
|
|
// URL - Строка - Адрес объекта - url
|
|
|
|
// Откуда - Строка - Путь внутри публичного каталога (только для папок) - from
|
|
|
|
// Куда - Строка - Путь сохранения файла - to
|
2024-03-14 13:54:45 +02:00
|
|
|
//
|
|
|
|
// Возвращаемое значение:
|
2024-04-03 12:46:08 +02:00
|
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
|
2024-03-14 13:54:45 +02:00
|
|
|
Функция СохранитьПубличныйОбъектНаДиск(Знач Токен, Знач URL, Откуда = "", Куда = "") Экспорт
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Откуда);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Куда);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
Адрес = "https://cloud-api.yandex.net/v1/disk/public/resources/save-to-disk";
|
|
|
|
Href = "href";
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("public_key", URL);
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(Откуда) Тогда
|
|
|
|
Параметры.Вставить("path", Откуда);
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Если ЗначениеЗаполнено(Куда) Тогда
|
|
|
|
Параметры.Вставить("save_path", Куда);
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
|
|
|
Ответ = OPI_Инструменты.Post(Адрес + Параметры, , Заголовки, Ложь);
|
|
|
|
|
|
|
|
URLОтвета = Ответ[Href];
|
2024-04-02 16:24:17 +02:00
|
|
|
|
|
|
|
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
|
|
|
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
2024-03-14 13:54:45 +02:00
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
|
|
|
#КонецОбласти
|
|
|
|
|
|
|
|
#КонецОбласти
|
|
|
|
|
|
|
|
#Область СлужебныеПроцедурыИФункции
|
|
|
|
|
|
|
|
Функция ЗаголовокАвторизации(Знач Токен)
|
2024-03-22 15:30:40 +02:00
|
|
|
|
|
|
|
Заголовки = Новый Соответствие;
|
|
|
|
Заголовки.Вставить("Authorization", "OAuth " + Токен);
|
|
|
|
|
|
|
|
Возврат Заголовки;
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
КонецФункции
|
|
|
|
|
|
|
|
Функция ПереключениеОбщегоДоступа(Знач Токен, Знач Путь, Знач ОбщийДоступ)
|
|
|
|
|
2024-04-01 21:22:19 +02:00
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(ОбщийДоступ);
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Заголовки = ЗаголовокАвторизации(Токен);
|
|
|
|
Назначение = ?(ОбщийДоступ, "publish", "unpublish");
|
|
|
|
Href = "href";
|
|
|
|
|
|
|
|
URL = "https://cloud-api.yandex.net/v1/disk/resources/" + Назначение;
|
|
|
|
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
Параметры.Вставить("path", Путь);
|
|
|
|
|
|
|
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
|
|
|
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
|
|
|
|
|
|
|
|
URLОтвета = Ответ[Href];
|
|
|
|
|
2024-04-02 16:24:17 +02:00
|
|
|
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецЕсли;
|
|
|
|
|
2024-03-14 13:54:45 +02:00
|
|
|
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
|
|
|
|
|
|
|
Возврат Ответ;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
|
|
|
|
#КонецОбласти
|