Rusland Опубликовано 29 октября, 2015 Опубликовано 29 октября, 2015 Есть ли готовое решение для доступа к Yandex.Disk? Есть REST API Диска на Java для Android, Swift для iOS, PHP: https://tech.yandex.ru/disk/rest/ А есть ли что-нибудь для Delphi? Цитата
0 alexbirukov Опубликовано 29 октября, 2015 Опубликовано 29 октября, 2015 Есть ли готовое решение для доступа к Yandex.Disk? Есть REST API Диска на Java для Android, Swift для iOS, PHP: https://tech.yandex.ru/disk/rest/ А есть ли что-нибудь для Delphi? Читал вот тут недавно статейку. Но сам пока не проверял. Равиль Зарипов (ZuBy), Rusland, dnekrasov и 1 другой 4 Цитата
0 Rusland Опубликовано 30 октября, 2015 Автор Опубликовано 30 октября, 2015 Почитал несколько статей и эту в том числе, в основном показан доступ к чтению списка файлов... а вот как читать/записывать в файл в облаке что-то мало информации Цитата
0 marsden Опубликовано 5 июля, 2017 Опубликовано 5 июля, 2017 Понимаю, что опоздал почти на два года, но все же, для истории и новичков ))) Rusland и dnekrasov 2 Цитата
0 Rusland Опубликовано 24 июля, 2017 Автор Опубликовано 24 июля, 2017 (изменено) В 05.07.2017 в 14:26, marsden сказал: Понимаю, что опоздал почти на два года, но все же, для истории и новичков ))) В Токио заработало. Еще бы 3 часть статьи про скачивание файла с Яндекс.Диска Изменено 24 июля, 2017 пользователем Rusland Цитата
0 Rusland Опубликовано 24 июля, 2017 Автор Опубликовано 24 июля, 2017 (изменено) @marsden В Берлине, в отличии от Токио, у RESTRequest нет метода AddFile. Как это обойти? Попробовал скопировать в папку с проектом файлы REST.Client.pas, REST.Types.pas, IPPeerAPI.pas из Токио, при компиляции получаю ошибку: [dcc32 Fatal Error] IPPeerAPI.pas(1260): F2051 Unit REST.HttpClient was compiled with a different version of IPPeerAPI.IIPMultipartFormDataStream Изменено 24 июля, 2017 пользователем Rusland Цитата
0 Rusland Опубликовано 25 июля, 2017 Автор Опубликовано 25 июля, 2017 Вот так получаю список файлов: procedure TForm1.GetFileList(); var Link,Mem:String; Code:Integer; begin RESTRequest1.Params.Clear; RESTRequest1.Params.Add; RESTRequest1.Params[0].Kind:=TRESTRequestParameterKind.pkHTTPHEADER; RESTRequest1.Params[0].name:='Authorization'; RESTRequest1.Params[0].Options:=[poDoNotEncode]; RESTRequest1.Params[0].Value:='OAuth ' + OAuth2Authenticator1.AccessToken; RESTRequest1.AddParameter('path', 'disk:/'); RESTRequest1.AddParameter('limit', '100'); // ограничение списка файлов до 100 RESTRequest1.AddParameter('media_type', 'video'); // не срабатывает этот фильтр RESTRequest1.Resource:='/disk/resources'; RESTRequest1.Method:=rmGet; RESTRequest1.Execute; if RESTRequest1.Response.StatusCode=200 then begin Memo1.Lines.Text:=RESTRequest1.Response.Content; // TODO дальше надо бежать по списку и найдя нужный файл скачать его end else Memo1.Lines.Add('запрос ссылки - ошибка '+RESTRequest1.Response.StatusCode.ToString); end; Почему не срабатывает ограничение 'media_type', 'video' ? Цитата
0 jornada Опубликовано 13 декабря, 2018 Опубликовано 13 декабря, 2018 (изменено) В 24.07.2017 в 16:18, Rusland сказал: @marsden В Берлине, в отличии от Токио, у RESTRequest нет метода AddFile. Как это обойти? Попробовал скопировать в папку с проектом файлы REST.Client.pas, REST.Types.pas, IPPeerAPI.pas из Токио, при компиляции получаю ошибку: [dcc32 Fatal Error] IPPeerAPI.pas(1260): F2051 Unit REST.HttpClient was compiled with a different version of IPPeerAPI.IIPMultipartFormDataStream Лучше поздно, чем никогда) Например так // RESTRequest1.AddFile(FileName); AStream := TMemoryStream.Create(); AStream.LoadFromFile('D:\1.mp4'); RESTRequest1.AddBody(AStream, ctVIDEO_MP4); Изменено 13 декабря, 2018 пользователем jornada Anatoliy, Rusland и Tumaso 3 Цитата
Вопрос
Rusland
Есть ли готовое решение для доступа к Yandex.Disk?
Есть REST API Диска на Java для Android, Swift для iOS, PHP: https://tech.yandex.ru/disk/rest/
А есть ли что-нибудь для Delphi?
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.