API Яндекс Диск

  • Автор темы Автор темы ffeniks
  • Дата начала Дата начала

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Реакции
411
Баллы
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
 
Последнее редактирование:
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
Кто-нибудь может поделиться рабочим кодом для загрузки файлов? мучаюсь второй день. Создаются файлы но они в результате получаются пустые. а код сишарпа который выше не работает. я уже в него добавлял свои данные
 
Большое-большое спасибо автору!
 
А как получить токен API из зенки, есть решение?
 

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