Клуб API Диска

API Яндекс.Диска предназначен для приложений, которые работают с файлами пользователей Яндекс.Диска или хранят на Диске собственные файлы и настройки.

В клубе мы ждём всех, у кого возникли вопросы о нашей технологии. Анонсы собственных проектов, в которых вы используете API и SDK Яндекс.Диска, приветствуются! Мы будем публиковать тут новости и обновления API, а также рассказывать об интересных проектах, сделанных на нашей технологии.

Получение полного содержимого папки и её подпапок через REST API
22 мая, 11:41

Господа, правильно ли я понимаю, что в настоящий момент REST API не позволяет получить информацию обо всех подпапках и их содержимом адекватным способом, при условии, что папка имеет множество подпапок?

В случае получения информации о подпапках через "Метаинформацию о файле или папке" и рекурсивного прохождения через все подпапки нам понадобится сделать ровно столько запросов, сколько существует папок и подпапок, а это кажется не очень рациональным.

Если получать информацию через "Плоский список всех файлов", то попутно придётся получать информацию о всех остальных файлах и папках, что тоже не слишком здорово.

Было бы круто добавить в "Плоский список всех файлов" опциональный параметр "path", чтобы задать папку, в которой следует искать файлы. Либо, допустим, фильтр путей к файлам по регулярному выражению.

Или я что-то упустил, и есть другой способ?

Нет комментариев
Возможно ли получить текст текстового файла (публичного) через REST API Диска?
15 мая, 23:14

Хочу узнаать, есть ли возможность читать текстовые файлы через API ЯндексДиска.

Нет комментариев
API,текст
Добавьте актуальности для iOS/MacOS разрабочиков?
13 мая, 10:59

Добрый день!

У Вас есть API написаный 4!!! года назад на Objective-C

Прошу дополните его современным SWIFT 3? 

Нет комментариев
ios,api,swift
Можно ли отключить синхронизацию по имени папки или по расширению файла
12 мая, 08:48

Добрый день!

Есть ли возможность в Я.Диске сделать так чтобы не синхронизировалась папка(по названию) или же файлы с определенным расширением. Т.е. есть ли возможность настройть как к примеру в git (.gitignore) ? Чтоб когда в папку на компьютере загружаю папку с файлами, то определенные файлы ни когда не синхронизировались с Я.Диском?

Нет комментариев
синхронизация,Синхронизация яндекс.дтска
Не работает лист
6 мая, 15:33

Импортнул исходники SDK, получил токен.

Создание директорий, авторизация срабатывают, а вот получение списка - нет

 var sdk = new DiskSdkClient(oauthToken);
sdk.GetListAsync();

Прилетает ошибка:
Disk.SDK.SdkException: Входная строка имела неверный формат.

Странно, т.к. параметров не передаю никаких, может я что-то недопонял просто?

Нет комментариев
Ошибка запроса retrofit2 yandexsdk. Ошибка Attempt to invoke virtual method?
4 мая, 20:14

Здесь формируется на отправку запрос(в документации яндекс написано, что параметры path и from должны иметь url формат, я параметры написал вручную:

new AsyncTask<Void, Void, Void>() {

                @Override
                protected Void doInBackground(Void... params) {
                    RestClient client = null;
                    try {

                        client = RestClientUtil.getInstance(credentials);
                        client.move("%2F1.jpg", "%2F211.jpg", false);
                    } catch (HttpCodeException ex) {
                        Log.d(TAG, "renameMoveItem", ex);
                        sendException(ex.getResponse().getDescription());
                    } catch (IOException | ServerException ex) {
                        Log.d(TAG, "renameMoveItem", ex);
                        sendException(ex);
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(Void aVoid) {
                    RenameMoveItemFragment targetFragment = (RenameMoveItemFragment) getTargetFragment();
                    if (targetFragment != null) {
                        targetFragment.onComplete();
                    }
                }
            }.execute();
        }

вот сам интерфейс c sdk:

@POST("/v1/disk/resources/move")
    Link move(@Query("from") String from, @Query("path") String path,
              @Query("overwrite") Boolean overwrite)
            throws IOException, ServerIOException;

ВОТ ЛОГИ:

FATAL EXCEPTION: AsyncTask #2
                    Process: com.example.gibkin.multycloud, PID: 10297
                                                                               java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                                   at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                                                   at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                                   at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                                   at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                                                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                                   at java.lang.Thread.run(Thread.java:818)
                                                                                Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Handler.post(java.lang.Runnable)' on a null object reference
                                                                                   at com.example.gibkin.multycloud.yandex.example.IODialogRetainedFragment.sendException(IODialogRetainedFragment.java:32)
                                                                                   at com.example.gibkin.multycloud.yandex.example.IODialogRetainedFragment.sendException(IODialogRetainedFragment.java:28)
                                                                                   at com.example.gibkin.multycloud.yandex.example.RenameMoveItemFragment$RenameMoveItemRetainedFragment$1.doInBackground(RenameMoveItemFragment.java:144)
                                                                                   at com.example.gibkin.multycloud.yandex.example.RenameMoveItemFragment$RenameMoveItemRetainedFragment$1.doInBackground(RenameMoveItemFragment.java:130)
                                                                                   at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                                   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                                                                                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                                                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                                                   at java.lang.Thread.run(Thread.java:818) 

1 комментарий
yandex sdk ,android,java,error,rename file,retrofit2,move file,api
Вопрос по акции +32 Гб для диска с мобильного.
27 апреля, 18:36

Можно ли использовать эту акцию сразу для нескольких почтовых ящиков с 1 телефона? или это запрещено? 

Нет комментариев
Виджет для TIZEN для ТВ SAMSUNG
15 апреля, 20:37

Прошу сделать такой виджет . Чтобы смотреть видео на тв из яндекс диска.

Возможно это?

Нет комментариев
Вопрос по "Скачивание файла из интернета на Диск"
9 апреля, 16:42

Доброго времени суток, возникла проблема, сколько искал ответа так и не нашел.

Вопрос по "Скачивание файла из интернета на Диск"

Проблема в том что как бы я не пытался, даже в полигоне загрузка вроде начинается, но по запросу /v1/disk/operations/{operation_id} всегда "status": "failed", пробывал и с разных сайтов сылку на скачивание давать, без разницы. В чем причина?

Нет комментариев
REST,API,Полигон
Предложение нового (старого) функционала для API Диска
7 апреля, 23:29

Приветствую! 
Было бы круто организовать возможность p2p взаимодействие в рамках API Диска. 

Пример. Два пользователя одновременно открывают «Яндекс Диск» (не важно, через браузер, мобильное приложение или включенным клиентом под Windows). 

Далее происходит следующее — при загрузке файла, должна быть возможность прямой (direct) передачи файла контакту (уникальному токену), минуя промежуточного сохранения данных в самом облаке диска (если это явно не указано отправителем файла). 

Необходимо определить точки отправки и получения, оповестить принимающую сторону о намерении передать файл отправителем, после получения согласия со стороны получателя файла,  организовать прямой коннект и стримить файл от отправителя к получателю (с возможностью докачки при обрыве).

Скорость закачки и объемы файлов, при такой передачи, потенциально — выше чем промежуточное сохранение файла в облаке. К тому же «отдавать» файл можно сразу нескольким  приемникам. 

Думаю, прикрутить к этому простой и лаконичный API — дело не трудное.

Спасибо за внимание!

Нет комментариев
API,Яндекс Диск
Яндекс диск 2.0 БЕТА
31 марта, 18:48

Есть постоянная нужда в обмене большого количества файлов в яндекс диске. Купил ТБ, и в итоге не могу качать Тб, т.к. яндекс диск бета 2.0 скачивает только на С/ ??? У меня raid из твердотельных дисков под систему, почему я должет 1 Тб качать именно на него? В google chrome я не могу тоже качать , выбирая папку и при нажатии кнопочка скачать , ничего не происходит!!!
 яндекс диск бета 2.0 сделайте назначение - куда качать!!!!

3 комментария
curl или не curl
27 марта, 08:33

уже десять дней не загружаются файлы через curl. Выскакивает вот такая ошибка:

curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 104

чего делать не понятно. Служба техподдержки ... где-то есть. Написал, не отвечают. Думают, наверное :-)

P.S. Сейчас прочитал пост ниже, про то, что не загружаются большие файлы. Проверил у себя, точно. Мелкие загружаются, большие нет.

Нет комментариев
Сортировка файлов
13 марта, 13:51

Здраствуйте. Возможно ли сделать так, что бы диск запомнил мои предпочтения в сортировке файлов?

Нет комментариев
REST API Диска для C#
5 марта, 14:23

Добрый день, есть ли примеры использования REST API Диска в программах написанных на C# ?

Нет комментариев
Не загружаются большие файлы
1 марта, 10:29

Добрый день, подскажите пожалуйста, перестали загружаться файлы больше определенного размера, по тестам, больше около 100-150Мб на ЯндексДиск, средствами REST API. Файлы меньшего размера успешно загружаются.

Как я могу отследить ошибку и исправить ее?

Всем спасибо заранее)

2 комментария
Корректный перенос прав Linux-клиентом
17 февраля, 22:27

Консольный клиент для Linux успешно отлавливает момент изменения прав на файлы, однако при синхронизации права ставятся в соответствии с содержащий файл папки. Права на исполнения вовсе трутся.

Было бы очень замечательно если бы права на файлы и каталоги (POSIX) корректно переносились с устройства на устройство, когда оба этих устройства поддерживают POSIX вариант управления правами.

Я понимаю, что с windows все запущено - там posix права - только с костылями поддерживается, там своя кухня с правами. И скорее всего выработать совместимую модель для Linux и windows не удастся. Но можно же сохранять права в разных форматах, и уже на клиенте решать какой вариант прав применять к фалам на данной конкретной машине.

2 комментария
Linux
Перестал работать API для загрузки
14 февраля, 20:39

С сегодняшнего дня не могу загрузить файлы в Диск с помощью CURL. Выдает ошибку с кодом 500. Код никак не менял. В чем проблема?

5 комментариев
Yandex Disk Operations
13 февраля, 22:46


Сегодня в рамках поддержки Отечественных сервисов в стенах МГТУ им. Баумана стартовал новый проект под названием Yandex Disk Operations. Проект предназначен для решения таких часто встречаемых задач при работе с облачными хранилищами, как удаления повторяющейся информации,  объединение содержимого хранилащ,  перенос содержимого хранилища без необходимости загрузки данных на сторону клиента, удобный поиск с использованием метаинформации и много другое.
Стоит отдельно сказать спасибо разработчикам сервиса Яндекс.Диск за удобное API  и отличную документацию. Всем спасибо за внимание, мы будем держать вас в курсе событий.

1 комментарий
Когда починят АПИ диска ?
11 февраля, 17:32

Собственно вопрос в теме, когда починят АПИ диска? 

При попытке загрузки 503 ошибка

12 комментариев
Загрузка файлов на Яндекс Диск REST API
28 января, 19:26

Загрузка файлов на Яндекс Диск  REST API

$url = "https://cloud-api.yandex.net/v1/disk/resources/upload?path=beeline%5Chonda-civik.png&url=http%3A%2F%2Fcenterakpp.com%2Fwp-content%2Fuploads%2F2012%2F03%2Fhonda-civik.png&overwrite=true";

//https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2Fbeeline"

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
$header = array(
    'Accept: application/json',
    'Authorization: OAuth '. TOKEN ,

);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1); 
$result = curl_exec($ch);
curl_close($ch);
echo $result;

Как организовать проверку если файл на сервере или допустим если уже есть перезаписать?*

1 комментарий