Клуб API Диска

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

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

Запись в любом месте на Диске
13 ноября, 12:49

Добрый день! Подскажите, пожалуйста, разрешение "Запись в любом месте на Диске" позволяет следующие методы?

- удалять файлы в любом месте на диске?

- читать файлы, которые были созданы данным приложением?

Благодарю!

Нет комментариев
Осторожно! Некоторые public_url неверные.
9 ноября, 12:49

При получении списка файлов методом cloud-api.yandex.net/v1/disk/resources?path=disk:/&offset=0 в теле ответа в некоторых «public_url» в ссылке нехватает нескольких букв и они соответственно не работают. Большинство ссылок верные, но есть косяки.

Нет комментариев
Ошибка в методе
Не могу отключить повторяемый платеж
8 ноября, 11:17

Здравствуйте! Не могу отключить повторяемый платёж ! Перекидывает  на страницу которая не работает! Что мне делать? Или это так задумано чтобы снимать с нас деньги?

Нет комментариев
почему браузерный яндекс диск менее функционален чем мобильная версия???
20 октября, 15:47

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

Нет комментариев
Копирование файлов с диска на хостинг
17 октября, 13:08

Доброго времени суток!

Имеется задача реализации копирования обновленного контента с Яндекс диска на хостинг средствами webdav. Знаю, что можно получать картинки, но это получение прямых ссылок. Какую использовать библиотеку для того, что бы копировать содержимое каталога диска на хостинг (не на локальный компьютер)?

Нет комментариев
Яндекс Диск,php,js,копирование
Загрузка файлов в Диск по URL. Что не так?
17 октября, 09:58

Вот код:

$img = "http://minionomaniya.ru/wp-content/uploads/2016/01/%D0%9A%D0%B5%D0%B2%D0%B8%D0%BD.jpg";
$url = "https://cloud-api.yandex.net:443/v1/disk/resources/upload";
$data = array("url" => ($img), "path" => urlencode("/gomer.jpg"));                                                           

$data_string = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);   
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: OAuth <token>'
));
$result=curl_exec($ch);
curl_close ($ch);

Выдает вот это:

{"message":"Ошибка проверки поля \"url\": Это поле является обязательным.","description":"Error validating field \"url\": This field is required.","error":"FieldValidationError"}

Где ошибка??

Нет комментариев
Поиск файлов в яндекс диске
10 сентября, 20:57

Добрый вечер.

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

https://tech.yandex.ru/disk/doc/dg/yandex-disk-dg.pdf

Код получения списка:

ИмяСервера = "cloud-api.yandex.net";
	ОтносительныйURL = 
		"/v1/disk/resources?path=" + Путь +
		"&offset=" + XMLСтрока(Смещение);
	
	Заголовки = Новый Соответствие;
    Заголовки.Вставить("Accept", "application/json");
    Заголовки.Вставить("Content-Type", "application/json");
    Заголовки.Вставить("Authorization", "OAuth " + Токен);
	
	HttpЗапрос = Новый HTTPЗапрос(ОтносительныйURL, Заголовки);
	
	HttpСоединение = Новый HTTPСоединение(ИмяСервера, 443,,,, 60, Новый ЗащищенноеСоединениеOpenSSL);
	HttpОтвет = HttpСоединение.Получить(HttpЗапрос);

	ТелоОтвета = HttpОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
	ОбработатьКодСостояния(HttpОтвет, ОтносительныйURL, ТелоОтвета);
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ТелоОтвета);
	Ответ = ФабрикаXDTO.ПрочитатьJSON(Чтение);
	
	Если Ответ._embedded.total - Ответ._embedded.offset > 1 Тогда
		Для Каждого Item Из Ответ._Embedded.Items.Items Цикл
			Стр = СписокФайлов.Добавить();
			Стр.Имя = Item.Name;
			Стр.Тип = Item.Type;
			Стр.Путь = Item.Path;
		КонецЦикла;
	ИначеЕсли Ответ._embedded.total - Ответ._embedded.offset = 1 Тогда
		Стр = СписокФайлов.Добавить();
		Стр.Имя = Ответ._Embedded.Items.Items.Name;
		Стр.Тип = Ответ._Embedded.Items.Items.Type;
		Стр.Путь = Ответ._Embedded.Items.Items.Path;
	КонецЕсли;
	
	Если Ответ._embedded.total > Ответ._embedded.limit + Ответ._embedded.offset Тогда
		СписокФайлов(Путь, Мин(Смещение + Ответ._embedded.limit, Ответ._embedded.total)); 
	КонецЕсли;

Нет комментариев
Плоский список файлов в опубликованной папке
31 августа, 08:30

Хочу получить плоский список файлов в опубликованной папке. Читаю документацию:

  1. Плоский список всех файлов. Можно получить плоский список файлов на собственном «Диске».
  2. Метаинформация о публичном ресурсе. Для публичного ресурса можно получить список директорий и файлов в них, но, кажется, только на один уровень вложенности.

Хотелось бы обобщить две эти возможности. Пытался в список полей добавить _embedded.items._embedded.items.name — не работает, поле игнорируется.

Пожалуйста, подскажите решение.

Нет комментариев
Python сертификат
21 августа, 16:10

Всем привет, помогите решить проблему, использую  библиотеку webdavclient, отключив антивирус, все работает нормально, но если антивирус включен, то он похоже просит сертификат. как решить данную проблему?

Нет комментариев
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()

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

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

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

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

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

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

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

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

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

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

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

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

2 комментария
Синхронизация яндекс.дтска
Не могу получить превьюшки файлов с диска
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 делать сортировку  файлов по дате добавления по убыванию (новые сверху)?

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

3 комментария
Периодически ошибка 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

2 комментария