Pull to refresh

Comments 27

Я почти 2 недели назад обращался в поддержку Яндекс.Диска с вопросом, ответили ждите отправиили вопрос специалистам — и тишина. Как в новом API узнать квоту пользователя и его логин? Или вы предлагаете файлы заливать на авось, а если выдалась ошибка после заливки, ну значит места нет.

Так же не понятно поддерживается ли докачка файлов, в случае разрыва. Можно ли скачивать файл частями (поддерживается ли Range)?

При тестировании сделал доступ только к каталогу приложения. В результате API выдавало ошибку при попытке просмотреть содержимое корневого каталога, либо создать каталог в корне. Также не создался каталог с именем приложения (по аналогии с dropbox), и нигде в API не написано, как переключать контекст, по аналогии с дропбоксовыми root/sandbox.
Добрый день! Коллеги просили принести свои извинения, произошел сбой в коммуникации.

Как в новом API узнать квоту пользователя и его логин? Или вы предлагаете файлы заливать на авось, а если выдалась ошибка после заливки, ну значит места нет.

На данный момент квоту и логин пользователя узнать нельзя, однако мы планируем заняться этим вопросом в ближайшее время.

Так же не понятно поддерживается ли докачка файлов, в случае разрыва. Можно ли скачивать файл частями (поддерживается ли Range)?

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

При тестировании сделал доступ только к каталогу приложения. В результате API выдавало ошибку при попытке просмотреть содержимое корневого каталога, либо создать каталог в корне. Также не создался каталог с именем приложения (по аналогии с dropbox), и нигде в API не написано, как переключать контекст, по аналогии с дропбоксовыми root/sandbox.

Шапка приложения создастся при первом обращении к ней по алиасу «app:/». Если ваше приложение получило разрешения только на доступ к папке приложения, то корень Диска пользователя «disk:/» оно просматривать не сможет. В ближайшее время мы опишем это в документации.
Спасибо за ответ.

Через app:/ действительно работает, и создается каталог. Но сразу бы хотелось сделать замечание, что если запросить содержимое каталога, то ответ возвращается с полными путями, что имхо не очень правильно. Т.е. например каталог «app:/test» будет выдан, как «disk:/Приложения/Название приложения/test».

Если уж запросили на уровне приложение (и тем более если приложение имеет доступ только к каталогу приложения), то и не нужно ему показывать полный путь.
ИМХО было бы удобнее если бы просто менялся путь, типа

https://cloud-api.yandex.net/v1/disk/resources — работаем со всем диском
https://cloud-api.yandex.net/v1/app/resources — работаем с каталогом приложения


В общем ждем тогда квоты и в принципе можно использовать.

И кстати, раз уж вы делаете аплоад в 2 запроса, то почему бы в первом запросе не указывать размер файла, и опционально MD5/SHA256 (как это сделано в WebDAV), тогда вы сразу сможете проверить есть ли место для файла перед заливкой, а также не является ли он дубликатом.
Вы абсолютно правы. Сейчас прорабатывается вопрос о том, как и когда мы это сможем сделать.

У нас ещё очень много всего запланировано, но мы решили сначала запустить базовую версию API, а затем наращивать количество доступных функций. Ваши отзывы и предложения нам очень помогут в планировании этих задач :)
И еще добавлю несколько пожеланий. Я использую API Яндекс.Диска для бэкапа, поэтому меня интересует специфика работы с большими файлами. И в принципе WebDAV API всем устраивает кроме отсутствия возможности заливать файлы на Яндекс.Диск по частям (что есть и у Dropbox, и в Google Drive и т.п.), что в случае с большими файлами (а это могут быть гигабайты) доставляет определенный дискомфорт.
В REST API даже не указано есть ли какие-то ограничения на размер файла?

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

При использовании гиперссылок пропадает необходимость вручную собирать URL

А, это чесно говоря вообще непонятно, вы что рассчитываете, что ваш API только вручную используют? Всё равно для работы с API будет делаться какой-то класс в котором все пути прописаны в соответствующих методах. И собрать ссылку, будет занимать значительно меньше времени, чем получить и распарсить ответ API с кучей гиперссылок (представьте себе ответ с содержимым каталога, в котором для каждого файла будет куча однотипных ссылок), и при этом для того чтобы скачать или залить файл на Диск нужно всё равно делать дополнительный запрос, чтобы получить временную ссылку.

Вот ссылки для одного файла
Это ссылки для одного файла, а если файлов несколько сотен или тысяч?
"_links": {
          "move": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources/move?from=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg&path={path}",
            "method": "POST",
            "templated": true
          },
          "trash": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg",
            "method": "DELETE"
          },
          "download": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources/download?path=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg",
            "method": "GET"
          },
          "self": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg",
            "method": "GET"
          },
          "copy": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources/copy?from=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg&path={path}",
            "method": "POST",
            "templated": true
          },
          "upload": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources/upload?path=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg",
            "method": "GET"
          },
          "delete": {
            "href": "https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2F%D0%9E%D0%B1%D0%BE%D0%B8+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B3%D0%BE+%D1%81%D1%82%D0%BE%D0%BB%D0%B0.jpg&permanently=True",
            "method": "DELETE"
          }

Но хорошо хоть это сделали опциональным.
Добрый день, гипермедиа контроллы это, как вы правильно заметили, дополнительная опция, которая может быть полезна, но пользоваться ей совершенно не обязательно.
Вопрос, который наверное интересует многих — когда будет клиент то под linux?
Ну как то gentoo и rpm плохо сочетаются. хотя бы исходники для сборки
Мы прорабатываем с командой вопрос о том, чтобы выложить tgz, из которого вы сможете собрать пакеты для gentoo
Есть ли возможность получить список файлов в директории отфильтровав по типу на стороне API? Например, получить только *.jpg или только *.mov?
Добрый день, в данный момент REST API не поддерживает данную функциональность. Спасибо за предложение, мы обсудим этот вопрос с командой.
А можно полюбопытствовать, почему клиент Я.Диска для Macos весит в *десятки* раз больше, чем для Win/Lin? Что туда засунули?
В MacOSX всегда так было. Там же в приложение пихают практически все зависимости. Ну и наверное hi-res изображения, без которых в MacOSX лучше не запускаться)
А еще хотелось бы хуки на внешние урлы, по настраиваимым (через api) событиям.
Спасибо, это хорошая идея, мы подумаем с командой как ее реализовать
Очень круто, что к пользователям Swagger добавился Яндекс. Было бы совсем замечательно, если бы кто-то из ваших разработчиков API добавился в рабочую группу Swagger 2.0 — docs.google.com/forms/d/1vV-PkgkoRD7vASlPolbRH7W7fkllHG4Ce65TIlC43hI/viewform :) Думаю, вам есть, что сказать.
Спасибо за информацию:) Мы были в рабочей группе с самого начала. Но пока не принимаем активного участия в разработке, а лишь следим за процессом.
По поводу Полигона: интересно узнать, как вы локализовали (хоть и частично) Swagger UI, ибо нативной поддержки переводов там нет. Есть задача на гитхабе — github.com/wordnik/swagger-ui/issues/472, там пишут, что поддержка планируется, а если вы уже что-то сделали в этом направлении, то здорово было бы этим поделиться :)
Надеюсь вы всё ещё следите за этой публикацией.
Такой вопрос. Нужна возможность получить статический URL для расшаренной картинки которая хранится на диске. Не публичную ссылку, тут всё понятно, а URL самой картинки, чтобы встроить потом тэгом IMG в HTML.
Внятного способа это сделать не нашёл. Из хаков:
1) превью — не подходит потому что требует авторизации
2) ссылка на скачивание — в принципе подходит, но я смотрю они генерируются всё время разные, в связи с чем вопрос: эти ссылки на скачивание постоянные или перестают действовать через какое-то время?
Если ссылки на скачивание вечные, то вопрос закрыт, этот вариант меня в принципе устраивает. Если нет, то нет ли какого-то другого способа?
Или лучше вообще Яндекс.Диск для таких целей не использовать, а использовать Яндекс.Фотки например?
Привет!
Диск не предназначен для хостинга файлов, поэтому способов сделать это мы не предусматривали:) Да, можно попробовать использовать Яндекс.Фотки.
Алена, но это ведь вполне рабочий usecase, появится ли метод получения списка ссылок для скачивания всех файлов расположенных по входному пути? У вас же работают лучшие из лучших в России, неужели ничего нельзя придумать?
Привет, такой вопрос:

Как узнать есть ли ограничение на одновременный запрос к диску на закачку и скачивание файлов по ссылке downloader.disk.yandex.ru/disk*
Спасибо
Добрый день! Изучаю API Диска на предмет показа внутри своей веб-системы потокового видео с диска. Вижу, что ваш веб-клиент использует некое, судя по адресам, публичное API, например, yadi.sk/public-api-desktop/get-video-streams. Но не могу найти документацию на него. Есть ли она?

Или может быть все-таки есть некий способ сделать встраиваемый виджет для видео с Я.Диска?
elcoyot
Каким образом можно обратится в поддержку с фичреквестом? Возможно ли это сделать в принципе?
Sign up to leave a comment.