API Яндекс Диск

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63
Яндекс Диск REST API - может кому пригодится

1. Создание папки C# метод PUT -
Код:
string url = "https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2FНАЗВАНИЕ_ПАПКИ";
string APIKey = "OAuth ТОКЕН";
var response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.PUT,url,"","","","",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,30000,"","",true,5,AdditionalHeaders: new []{"Authorization: " + APIKey});
return response;
2. Запрос на получение ссылки для закачки файла , метод GET
Код:
https://cloud-api.yandex.net/v1/disk/resources/upload?path=disk%3A%2FНАЗВАНИЕ_ФАЙЛА
+ user agent
Код:
MKCOL /Pictures/ HTTP/1.1
Authorization: OAuth ТОКЕН
Далее regex вытаскиваем URL

3. Закачка файла по ссылке пункт 2, метод PUT C#
Код:
string url = project.Variables["URL_из_второго_пункт"].Value;
string APIKey = "OAuth ТОКЕН";
string direkt = "C:/папка/123.html";
var bf = File.ReadAllBytes(direkt);
var response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.PUT,url,bf,"","","",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,30000,"","",true,5,AdditionalHeaders: new []{"Authorization: " + APIKey});
return response;
4. Удаление файла C# метод DELETE . Там где НАЗВАНИЕФАЙЛА, ещё должна быть директория.
Код:
string path = project.Variables["НАЗВАНИЕФАЙЛА"].Value;
var encoded = System.Web.HttpUtility.UrlEncode(path);
project.Variables["НАЗВАНИЕФАЙЛА"].Value = encoded;
   string url = "https://cloud-api.yandex.net/v1/disk/resources?path=" + encoded;
   string content = "";
   string contentPostingType = "";
   string proxy = "";
   string Encoding = "UTF-8";
   int Timeout = 10000;
   string Cookies = "";
   string UserAgent = "";
   bool UseRedirect = false;
   int maxRedirectCount = 3;
   string[] AdditionalHeaders = {
"Connection: keep-alive",
"Accept: application/json",
"Authorization: OAuth ТОКЕН",
"Accept-Language: ru",
"Content-Type: application/json",
"Accept-Encoding: gzip, deflate"};
   string DownloadPath = "";
   bool UseOriginalUrl = false;
   bool throwExceptionOnError = false;
string response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.DELETE, url, content, contentPostingType, proxy, Encoding, ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, Timeout, Cookies, UserAgent, UseRedirect, maxRedirectCount, AdditionalHeaders, DownloadPath, UseOriginalUrl,throwExceptionOnError);
project.Variables["ОТВЕТ"].Value = response;
4 пункт взят с этой темы - https://zennolab.com/discussion/threads/jandeks-api-http-delete-c.53037/#post-395846
 
Последнее редактирование:
  • Спасибо
Реакции: Таксист и Bas

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113
3. Закачка файла по ссылке пункт 2 метод PUT C#
Код:
string url = project.Variables["URL_из_второго_пункт"].Value;
string APIKey = "OAuth ТОКЕН";
string direkt = "C:/папка/123.html";
var response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.PUT,url,direkt,"","","",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,30000,"","",true,5,AdditionalHeaders: new []{"Authorization: " + APIKey});
return response;
- Данный код, просто создаёт файл, а не загружает его.
По-моему вместо direkt нужно передавать байты файла. сделать var bf = File.ReadAllBytes(direkt) И вот эти данные уже передавать
 
  • Спасибо
Реакции: ffeniks

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43

C2H5OH

Client
Регистрация
30.09.2014
Сообщения
55
Благодарностей
26
Баллы
18
Кто-нибудь может поделиться рабочим кодом для загрузки файлов? мучаюсь второй день. Создаются файлы но они в результате получаются пустые. а код сишарпа который выше не работает. я уже в него добавлял свои данные
 
Регистрация
26.10.2022
Сообщения
23
Благодарностей
2
Баллы
3
Большое-большое спасибо автору!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)