API Яндекс Диск

ffeniks

Client
Joined
Jun 3, 2016
Messages
312
Reaction score
411
Points
63
Яндекс Диск REST API - может кому пригодится

1. Создание папки C# метод PUT -
Code:
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
Code:
https://cloud-api.yandex.net/v1/disk/resources/upload?path=disk%3A%2FНАЗВАНИЕ_ФАЙЛА
+ user agent
Code:
MKCOL /Pictures/ HTTP/1.1
Authorization: OAuth ТОКЕН
Далее regex вытаскиваем URL

3. Закачка файла по ссылке пункт 2, метод PUT C#
Code:
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 . Там где НАЗВАНИЕФАЙЛА, ещё должна быть директория.
Code:
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
 
Last edited:

VladZen

Administrator
Staff member
Joined
Nov 5, 2014
Messages
22,829
Reaction score
6,040
Points
113
3. Закачка файла по ссылке пункт 2 метод PUT C#
Code:
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) И вот эти данные уже передавать
 
  • Thank you
Reactions: ffeniks

ffeniks

Client
Joined
Jun 3, 2016
Messages
312
Reaction score
411
Points
63
По-моему вместо direkt нужно передавать байты файла. сделать var bf = File.ReadAllBytes(direkt) И вот эти данные уже передавать
да, получилось, спасибо.
 

Master4eg

Client
Joined
Apr 6, 2016
Messages
421
Reaction score
123
Points
43
да, получилось, спасибо.
Что-то у меня пашет, не поделишься шаблоном?)
 

C2H5OH

Client
Joined
Sep 30, 2014
Messages
55
Reaction score
26
Points
18
Кто-нибудь может поделиться рабочим кодом для загрузки файлов? мучаюсь второй день. Создаются файлы но они в результате получаются пустые. а код сишарпа который выше не работает. я уже в него добавлял свои данные
 
Joined
Oct 26, 2022
Messages
23
Reaction score
2
Points
3
Большое-большое спасибо автору!
 
Joined
May 26, 2020
Messages
582
Reaction score
201
Points
43
А как получить токен API из зенки, есть решение?
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)