Клуб API Диска

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

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

500 ошибка
10 августа, 16:41

Если вручную удалить папку с данными с диска, далее по апи попытаться скачать файл, ловим 500.

HttpCodeException{code=500, response=ApiError{description='Internal Server Error', error='InternalServerError'}}

Нет комментариев
Не загружается каталог точки присоединения Junction NTFS
4 августа, 15:47

Добрый день!

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

В лог вывалились такие сообщения:

70803-124014.367 CustomizeFolder(): Start writing file 'C:\Users\%UserName%\YandexDisk\%Directory1%\desktop.ini'. Attributes set successfull. Folder 'C:\Users\%UserName%\YandexDisk\%Directory1%\ is made a system one successfully.
70803-124014.367 OnIdle()
70803-124643.247 OnCheck()
70803-124643.307 OnBusy()
70803-124707.885 OnCheck()
70803-124726.157 ERROR: file read: %Directory1%
70803-124726.157 OnCoreError()
70803-124726.177 Balloon id=136
70803-124726.177 Яндекс.Диск
70803-124726.177 Ошибка чтения файла «%Directory1%».
70803-124726.177 Нажмите здесь, чтобы перейти к нему.
70803-124732.572 OnCheck()

Нет комментариев
NTFS,Junction,Точка присоединения,Загрузка файлов
401 Unauthorized
4 августа, 13:53

Используем Rest API для закидывания большого массива файлов на Диск. В какой-то момент все запросы GetUploadUrl получают код 401 с описанием "Не авторизован.", хотя предыдущие запросы имели тот же токен и получали код 200. Затем запросы снова отрабатываются корректно. Получается, что забрасывание файлов работает стабильно в течение, например, часа, затем где-то ещё час на все запросы API отвечает кодом 401, потом внезапно файлы продолжают закидываться. Токен в процессе не меняется, протухнет только через 361 день. Проблема носит непостоянный характер, возникает периодически и может длиться разное время.

Какие могут быть причины такого поведения? Неверная работа с токеном, проблемы с сетью, некорректные заголовки?

1 комментарий
Загрузка файлов в другой акк
31 июля, 23:58

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

1 комментарий
Программы и приложения
Управление токеном
31 июля, 16:29

Для получения токена пользователя перенаправляют на страницу, где он должен разрешить доступ к своим данным.
Потом его редиректом перебрасывают обратно на сервис и выдают токен.
Но вот в чем проблема, что с этим токеном дальше делать, как хранить, ведь получив чужой токен, я могу получить доступ к данным этого пользователя?
Как безопасно реализовать управление токеном?

Нет комментариев
OAuth,webdav,токены
API Диска
26 июля, 20:31

У меня есть сайт с фильмами,фильмы на сайте хранятся на яндекс диске,я их оттуда добавляю в сайт с помощю iframe но кажды божы день я должен менят iframe,можно ли как то по проще фильмы на сайт добавлят ????

Команда яндекс пожалуйста не игнорте вы уже достали со своей техподдержкой. Помощи от вас почти нуливая.

Нет комментариев
яндекс.диск и icloud
19 июля, 02:13

Помогите разобраться: скачал на свой mac mini яндекс.диск который использовал на винде, система закачивает 50гб информации которая храниться на яндекс.диске на жесткий диск, а потом эти 50гб пытается загрузить в icloud. Как отключить загрузку инфы с Яндекс.диска на icloud? А то получается, что инфа с одного облачного хранилища загружается на другое(масло масленное)

Нет комментариев
Синхронизация яндекс.дтска
Не могу получить превьюшки файлов с диска
18 июля, 21:27

Ссылки на картинки приходят и через браузер все прекрасно открывается, а вот через приложение никак.

            StorageFile file = null;
            StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
            file = await folder.CreateFileAsync("icon"+ rndInt, CreationCollisionOption.OpenIfExists);
            cli.DefaultRequestHeaders.Add("Authorization", this.Token);
            BackgroundDownloader downloader = new BackgroundDownloader();
            DownloadOperation downloadOperation = null;
            downloader.Method = "GET";
            downloader.SetRequestHeader("Authorization", this.Token);
            downloadOperation = downloader.CreateDownload(uri, file);

            await downloadOperation.StartAsync();

Нет комментариев
Яндекс Диск,REST
Сортировка и пагинация
18 июля, 11:45

Добрый день!

Имеются несколько ссылок на папки ЯД. Эти папки периодически владелец обновляет и добавляет новые файлы. Новые файлы попадают в самый конец папки. Можно ли как-то с помощью API делать сортировку  файлов по дате добавления по убыванию (новые сверху)?

П.С.: Впринципи, если бы была нормальная постраничная "пагинация", можно было бы перейти на последнию страницу. Но сейчас файлы подгружаются динамически при прокрутке страницы. Это очень не удобно и очень напрягаят когда файлов очень много (в основном это фото с разных мероприятий). От большого количество элементов на странице браузеры начинают медленно работать или зависать.

1 комментарий
Периодически ошибка 404
5 июля, 17:05

Доброго пр попытке загрузить  через  Yandex\Disk\DiskClient 

uploadFile начало вываливаться Service responded with error code: «404» and message: «Not Found» c чем может быть связана? закономерности вообще не могу понять то грузит то нет.

Нет комментариев
Хостинг изображений для сайта
28 июня, 12:08

Добрый день!

Подскажите, могу ли я использовать Я.Диск для хранения изображений для сайта?

1. Могу я  получить прямую  ссылку для скачивания (что бы хранить ее у себя в БД) ? Ссылка полученная  через https://tech.yandex.ru/disk/api/reference/content-docpage/ живет всего несколько часов.

2. Возможно ли создавать папки рекурсивно, по аналогии с mkdir(,,true) в PHP?

3. Каковы лимиты скачивания файлов, после чего происходит блокировка или какие либо ограничения?  В документации не нашел.   https://yandex.ru/blog/apidisk/139

Нет комментариев
Не всегда получаю картинки в preview
11 июня, 10:17

Здравствуйте!

Делаю вызов:

$headers = array("Authorization: {$this->yadisk_token}");
$curl = curl_init('https://cloud-api.yandex.net/v1/disk/resources?path=disk:/'.$full_yd_path.'&preview_size=300x300');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl,CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$info = curl_exec($curl);
if($info != '')
{
	$response = json_decode($info);

	if(!empty($response->_embedded->items))
	{
		foreach($response->_embedded->items as $item)
		{
			$file_list[] = array(
				'preview' => $item->preview,
				'path' => $item->path,
				'name' => $item->name,
				'size' => $item->size,
			);
		}
	}
}

В ответе приходят ссылки на preview файлов. Все хорошо.

При выполнении такого же запроса через какое-то время в полях preview приходят ссылки, при переходе на которые получаю "403 Forbidden".

Потом проходит какое-то время, снова этот же запрос дает небитые превьюшки.

Не могу понять, что делаю не так. Может, в Диске есть какая-то защита на количество запросов информации по одному и тому же ресурсу?

У только что сохраненной на Диске фотографии preview не формируется. Существует задержка какая-то?

Делаю еще запрос, вообще поле preview в элементе массива items нет.

Нет комментариев
Удаление файлов в папке на Яндекс диске
3 июня, 17:41

Добрый день,
пытаюсь сделать батник, который бы мог удалить файлы определенного типа в определенной папке на Яндекс диске. Например, в папке NewFLD только файлы типа *.jpg Какую маску надо прописать в URL?
Вот пример URL:

https://cloud-api.yandex.net:443/v1/disk/resources?path=NewFLD&permanently=false


Заранее спасибо!

Нет комментариев
REST
Yandex WebDAV API - постраничная загрузка
31 мая, 08:08

Добрый день!

Есть проблема с постраничной загрузкой, используя WebDAV API.

Есть три запроса:

https://webdav.yandex.ru/Фото/?amount=3

https://webdav.yandex.ru/Фото/?amount=3&offset=3

https://webdav.yandex.ru/Фото/

Все три отрабатывают одинаково: возвращаюся ВСЕ элементы в папке, то есть работает так, как если бы amount и offset не передавались.

В папке 12 Гб данных, загрузка всего содержимого и парсинг (тем более на мобильном устройстве) - это дорога в ад. Позарез нужна пагинация. 

Нет комментариев
webdav,API
Yandex Disk OPS
26 мая, 00:20

Приятного чтения и хорошего настроения.

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

И первое о чем мы расскажем будут основные изменения, которые затронули наш проект.

1. Изменилось название.
      Мы сделали его немного короче.
      - Yandex Disk Operations
      + Yandex Disk OPS

2. Изменились команды.
      Мы сформировали еще одну команду
      и осуществили несколько трансферов.

3. Изменились проекты.
     Вместо одного большого проект было
     принято решение реализовать 3 проекта:
     - Operations
     + REST, CLI и OPS

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

1. Прошли курс обучения кросс-платформенной разработки приложений на C++.
     #vim #git #cmake #catch #travis #doxygen #cpack #hunter #cppcheck #docker ...
2. Набросали ТЗ для 3 новых проектов.
3. Разработали первый проект REST, представляющий из себя SDK на С++.
     Писали, тестировали, документировали и пакетировали.
4. Разработали CLI с использованием написанного SDK.
     Получили хороший опыт в совместной разработке.
   
Считаем, что сделано уже немало, но осознаем что впереди еще больше.
И вот они грядущие интересные задачи первого жаркого летнего месяца:

- Реализовать пакет получение слепка диска. @tree.
- Реализовать пакет поиска копий данных на диске. @duplicate.
- Реализовать пакет удаления копий данных с диска. @clean.
- Реализовать пакет поиска копий данных на двух дисках. @replica.
- Реализовать пакет получения разницы слепков двух дисков. @subtract.
- Реализовать пакет копирования данных с одного диска на другой. @copy.
- Реализовать пакет объединения содержимого двух дисков. @merge.
- Интегрировать данные пакеты в проект CLI.

P.S. Всем спасибо за внимание, будем держать вас в курсе событий и дальше.

P.P.S. Стоит добавить пару фотографий из нашего Цифрового Журнала, он как ничто другое отражает ритм нашей усердной работы.

Нет комментариев
Яндекс Диск,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: Входная строка имела неверный формат.

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

Нет комментариев