![]() |
|
Удаление файла с ЯндескДиска Spiritonus, Garykom, Бычье сердце, Гость из Мариуполя, Сергиус, Волшебник, Builder, vis, Доминошник, ldo6, mmg, _Batoo, sdf, Wern, ilou, vladoe69, Sserj, АнализДанных, Mankubus, Kabz, Олдж
| ☑ | ||
---|---|---|---|---|
0
Spiritonus
25.05.25
✎
20:55
|
Пытаюсь удалить файл с Яндекс диска согласно инструкции от Яндекса https://yandex.ru/dev/disk-api/doc/ru/reference/delete#uspeshnyj-otvet
Процедура УдалитьФайлНаЯндексДиске(token, path) Экспорт // https://cloud-api.yandex.net/v1/disk/resources //? path=<путь к удаляемому ресурсу> //& [permanently=<признак безвозвратного удаления>] //& [md5=<MD5 удаляемого файла>] //& [force_async=<признак перезаписи>] //& [fields=<свойства, которые нужно включить в ответ>] path = "disk:" + СтрЗаменить(path,"/","%2F"); Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Заголовки.Вставить("Authorization","OAuth " + token); ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено); HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/resources?path=" + path +"&permanently=true" , Заголовки); Соединение = Новый HTTPСоединение("cloud-api.yandex.net",,,,,, ЗащищенноеСоединение); Результат = Соединение.Получить(HTTPЗапрос); КонецПроцедуры Результат возвращает 200, а не 204. В чем может быть ошибка. path = "disk:%2Ffinance%20lando%2FОстатки_23-05-2025.xlsx" HTTPЗапрос.АдресРесурса = "/v1/disk/resources?path=disk:%2Ffinance%20lando%2FОстатки_23-05-2025.xlsx" |
|||
1
Волшебник
25.05.25
✎
22:31
|
файл удаляется?
|
|||
2
Волшебник
25.05.25
✎
22:38
|
204 No Content — сервер успешно обработал запрос и такого содержимого нет, вроде файл удалён
|
|||
3
Garykom
гуру
25.05.25
✎
23:23
|
path*
Путь к удаляемому ресурсу. Например, $2Ffoo%2Fphoto.png. Путь в значении параметра следует кодировать в URL-формате. 1. путь кривой 2. херово закодирован |
|||
4
Spiritonus
25.05.25
✎
23:29
|
(1) Нет
|
|||
5
Spiritonus
25.05.25
✎
23:30
|
(3) Что именно не так, есть аналогичная процедура с загрузкой на диск, там все работает отлично
Процедура ЗагрузитьОбновитьФайлНаЯндексДиске(token, path, overwrite, ПутьКФайлуДляЗагрузки) //Параметры Get запроса для получения URL {{ path = "disk:" + СтрЗаменить(path,"/","%2F"); overwrite = ?(overwrite, "true", "false"); //Параметры Get запроса для получения URL }} Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Заголовки.Вставить("Authorization","OAuth " + token); ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено); //Получение URL для загрузки {{ HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/resources/upload?path=" + path + "&overwrite=" + overwrite, Заголовки); Соединение = Новый HTTPСоединение("cloud-api.yandex.net",,,,,, ЗащищенноеСоединение); Результат = Соединение.Получить(HTTPЗапрос);// GET запрос для получения URL //Получение URL для загрузки }} Если Результат.КодСостояния <> 200 Тогда ВызватьИсключение "Ошибка при получении URL для загрузки." + Символы.ПС + Результат.ПолучитьТелоКакСтроку(); Иначе Сообщить("URL для загрузки файла получен успешно." + Символы.ПС + Результат.ПолучитьТелоКакСтроку()); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку()); СоответствиеРезультат = ПрочитатьJSON(ЧтениеJSON, Истина); СсылкаДляЗагрузки = СоответствиеРезультат.Получить("href"); СсылкаДляЗагрузки = СтрЗаменить(СсылкаДляЗагрузки, "https://", ""); ИмяСервера = Лев(СсылкаДляЗагрузки, СтрНайти(СсылкаДляЗагрузки, "/") -1); СсылкаДляЗагрузки = СтрЗаменить(СсылкаДляЗагрузки, ИмяСервера, ""); //Загрузка файла на полученный URL {{ HTTPЗапрос = Новый HTTPЗапрос(СсылкаДляЗагрузки, Заголовки); HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(ПутьКФайлуДляЗагрузки)); Соединение = Новый HTTPСоединение(ИмяСервера,,,,,, ЗащищенноеСоединение); Результат = Соединение.Записать(HTTPЗапрос);// PUT запрос //Загрузка файла на полученный URL }} Если Результат.КодСостояния <> 201 Тогда ВызватьИсключение Результат.ПолучитьТелоКакСтроку(); Иначе Сообщить("файл успешно загружен."); КонецЕсли; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |