Как стать автором
Обновить

Комментарии 224

GUI к нему планируется? Не всегда даже линукс пользователи хотят возиться с консолью.
Мы думаем о такой возможности. Думаете, он правда очень нужен?
НЛО прилетело и опубликовало эту надпись здесь
Использование QtCreator'а не говорит об использовании Qt, само собой. Вы про кнопочки зря так.
Написать хороший GUI — это несколько больше работы чем
кнопочек накидать — дело одного дня
Хороший — да.
Но многим и плохой сойдёт, для того, чтобы лишний раз не лезть в консоль…
Сделают плохой и их обязательно ткнут на Хабре носом в то, какой он плохой)
Да и не только на Хабре. Разумеется приличной компании не подобает делает мелкие левые программки с убогим дизайном. Но, если они дадут какой-то инструментарий, чтобы простой смертный мог прикрутить к их консольному приложению GUI…
Да, или просто сделать этот GUI не официально и выложить куда-нибудь, если на красивый и стильный GUI выделение средств в компании в ближайшее время не запланировано…

Просто нужно помнить, что Linux уже давно не чисто гиковская среда. Его часто устанавливают своим родителям/бабушкам/сёстрам. А такие люди наврядли будут пользоваться консольными приложениями.
Разумеется приличной компании не подобает делает мелкие левые программки с убогим дизайном.


Скажите это IBM =)
А можно и отдельно сделать.
Вот что у меня получилось.
Оболочка (Tkinter)
#!/usr/bin/python2.7


from Tkinter import *
from tkFileDialog import *
import subprocess

def yandex_disk(Command,  Option):
	print Command, Option
	check = subprocess.check_output(["yandex-disk", "%s" % Command, "%s" % Option]).replace("\r","")
	text.insert(END, "%s" % check)
	buttonstate()

def buttonstate():
	check = subprocess.check_output(["ls -l /tmp/yandex-disk* | grep daemon | wc -l"], shell=True).replace("\n", "")
	print check
	if (check != "0"):
		button3['state']=NORMAL
		button4['state']=NORMAL
		button5['state']=NORMAL
		button2['state']=DISABLED
	else:
                button3['state']=DISABLED
                button4['state']=DISABLED
                button5['state']=DISABLED
                button2['state']=NORMAL
	

root = Tk()
root.title("Yandex-Disk")
frame = Frame(root)
frame.pack()

file_opt = options = {}
options['defaultextension'] = ''
options['filetypes'] = ''
options['initialdir'] = '/home/'
options['initialfile'] = '*.*'
options['parent'] = root
options['title'] = 'Select File'


button1 = Button(frame, text="sync", width=10, command=lambda: yandex_disk("sync",""))
button1.grid(row=0, column=0)

button2 = Button(frame, text="start", width=10, command=lambda: yandex_disk("start",""))
button2.grid(row=1, column=0)

button3 = Button(frame, text="publish", width=10, command=lambda: yandex_disk("publish",askopenfilename(**file_opt)))
button3.grid(row=2, column=0)

button4 = Button(frame, text="status", width=10, command=lambda: yandex_disk("status",""))
button4.grid(row=3, column=0)

button5 = Button(frame, text="stop", width=10, command=lambda: yandex_disk("stop",""))
button5.grid(row=4, column=0)

buttonstate() 

text = Text(frame, width=80, height=10)
text.grid(row=0, column=1, rowspan=5)

root.mainloop()




Хотел было еще сделать радиокнопки, для каждой из опций, да надоело. Мне консоль роднее.
За консоль спасибо, но поддерживаю — нужен.
А расскажите, что именно от него нужно? Он же должен быть максимально незаметным.
Примерно то же, что и от Ubuntu One или DropBox клиента. Цель — чтобы пользователь мог ничего не изучая (не все линукс пользователи манокуры и любители консоли) быстро нащелкать/настроить мышкой — и все работало, иногда что-то в трее сообщало, все ли ок или нет.

Тоже присоединяюсь — GUI нужен
Ну плюс в дропбоксе естьу добная фича — кликнуть по файлу и расшарить его. Пока богаче и удобнее дропбокса ничего нет.
Кто ставит минус, аргументируйте альтернативы под Linux!
Эта фича только в наутилусе. Наверное поэтому.
Хорошо, а какие есть альтернативы? (я молчу, что можно поставить наутилус)
А я что? Я тоже дропбокс использую. Хоть и без наутилуса с фичей.
Поставить наутилусь? И тонну зависимостей к нему? Ну уж нет.
Тогда зачем ставить минус? Каждому своё, тема отдельного холивара.
Когда-то в 2011-ом году у меня были KDE и Dolphin. И в нем, почему-то, все прекрасно работало.
Ах да, там нужно было пять минут пошаманить ручками, какой ужас! Проще ныть про зависимости наутилуса.
1. Стороннее.
2. Даже с дольфином они не единственные файломенеджеры.
3. Да, пропустил появление, виноват.
4. Это было предположение, очевидно.
А вот под Thunar
Ну так есть же трей. И собственно все облачные сервисы обычно там и светятся. Что нужно:
1) клик на значек трея, который бы показала состояние клиента (текущие операции)
2) Показал бы занятое/свободное пространство
3) Инструмент публикаций
4) Настройки
5) Открытие файлового менеджера на директории с облачными данными
Почему имеенно GUI и почему именно в трее:
1) Потому что удобней сделать два клика для получения информации, чем вводить команду
2) Потому что не все пользователи линукс умеют работать с консолью (мои родные занимаются веб-серфинингом и смотрят кино, им не нужна консоль)
3) Потому что при работе под Иксами консоль — тоже окно (конечно можно от этого отойти, но по умолчанию я запускаю терминал и он — окно)
4) Потому что консоль — преимущество над виндоус, а отсутсвие gui — преимущество windows (Исключительно идейный аргумент, но он имеет место быть)
Спасибо за столь подробное описание кейсов, для которых важен GUI.
Спасибо, Ваши кейсы для GUI ЯДа помогли мне в описании немного другой задачи.

Простите, но пункт 4 с выходом первой версии Powershell актуальность потерял, А после выхода третьей — стал развлечением для изучения дури программирования в .Net нескольких моих знакомых, в ИТ совсем не подкованных. Молчу уже про то, что например, консоль Exchange чуть ли не надстройка над Powershell для управления почтовым сервером.
Топик про клиент под Linux, откуда там Powershell и .Net?
конкретно к 4му «идейному» пункту, о чем, я собственно сразу написал.
.Net кстати, как Mono вполне присутствует.
С количеством упоминания я, пожалуй, действительно переборщил
А, теперь понял. Не обратил внимания на то, что там два четвёртых пункта.
Ну мне положим, хватило бы и консоли, но обычные юзеры в консоль не полезут. Кстати, пользовательское соглашение не запрещает самому создать GUI-обертку вокруг утилиты?

P.S. За то что поддерживаете альтернативные (свободные) платформы — спасибо.
Вы можете создавать приложения, использующие CLI Диска, при соблюдении условий лицензии.
Не очень.
Или хотя бы безгуёвую версию не убивайте.
GUI нужен полюбому, не только красноглазики юзают linux, особенно Ubuntu
Мне не нужен. Все отлично сделали.
НЛО прилетело и опубликовало эту надпись здесь

Добрый. Гуи нет, а вот пакет для распберри (armhf) очень(

Нет случайно версий или возможности скомпилировать? Если нужен тестер, я @whoim2 в телеграмм.

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

Какую особенную пользу мог бы принести GUI?
Он был бы более дружелюбным к «не гикам», да и многим гикам было бы удобнее видеть состояние/уведомления клиента не только в консоли.
Раз он так распространен, значит какую-то пользу приносит…
Использую всплывающие подсказки от иконки dropbox-а в трее при наведении на нее. Чтобы узнавать текущее состояние(все ОК/идет загрузка/т.п.). А так GUI не нужен.
я вот не просил клиент для линукса, но внимательно читал и очень надеялся. И вот, ура, но… я его так ждал потому, что у моей девушки убунта, понимаете, у девушки…
НЛО прилетело и опубликовало эту надпись здесь
Думаю, так же, как и моей жене: с легкостью и без напрягов ;)
А что ей может понадобиться в консоли?
Что вообще может понадобиться в консоли большинству людей — которые в основном сёрфят интернет и смотрят фильмы?
НЛО прилетело и опубликовало эту надпись здесь
Знаете, есть у меня смутное подозрение, что мои знакомые девушки (да и многие другие знакомые), если будет нужно поставить драйвер на какой-нибудь дигитайзер, всё равно скорее обратятся ко мне, чем сделают это сами, и не важно, работают они под Linux, под Windows, или под Mac OS…
НЛО прилетело и опубликовало эту надпись здесь
Да нет. Просто есть люди, которые сами знают, что не отличат официальный источник драйверов, от левого сайта с вирусами… В общем, перестраховываются так люди. А кто-то просто обучаться не хочет… Большинство людей предпочитает чтобы просто «всё работало», не углубляясь в суть. Точно так же, кто-то на машинах меняет колёса и тормоза самостоятельно, а кто-то в таких случаях прибегает к помощи специалистов. Хотя операция тоже не из самых сложны.
Сегодня вечером обязательно спрошу у жены, не хочет ли она поставить драйвер на какой-нибудь дигитайзер, и обязательно напишу вам ее ответ.
Так что ответила-то? :)
Ответ состоял из одного слова: «Чего?», сопровождавшегося примерно вот таким выражением лица: «о_О»

Возьму на себя смелость перевести на литературный русский: «Нет, я не хочу ставить драйвер на какой-нибудь дигитайзер, и более того: я понятия не имею, что это такое и зачем это может понадобиться».
Антон, скажи, а в Win-версии есть GUI? И если да, то зачем ты задаешь вопросы про «каким он должен быть» и «какую пользу он мог бы принести?
Сразу меркантильный вопрос: за приглашенных людей, которые установят не win-клиента, а вот этого, будут начислять бонусное пространство?
Вы круты, не только пишете о том, что сделали, но и немного о том, как.
Ждём GUI)
Потрясно, долго этого ждал. Гугл до сих пор не может сделать подобное для Гугл.Диск, а Яндекс смогли. Молодцы ребята!
Если не ошибаюсь, у гугля даже вебдава нет.
Нету. Именно по этой причине для не которых вещей использую именно яндекс-диск.
Один из сценариев использования, которые я счел полезными для себя:
Все пароли храню в keepass (для него есть клиенты под все платформы). Долгое время data-файл keepass хранил в папочке, которая синхронизировалась через dropbox, Сейчас пришел к другой схеме, которая показалось чуть более удобной и не требует установленного dropbox-клиента:
Использую для keepass небольшой плагин позволяющий работать с базой паролей через webdav (или если не получается, то с последней закэшированной). Из популярных облачных клиентов без танцев с бубном только яндекс диск заработал. Очень удобно.
Где можно почитать про такое решение?
Спасибо, мне хватает и консольной версии. Очень рад что сделали и работает как часы. Жена хочет GUI, так что тема думаю актуальна.
Было бы не плохо иметь под рукой какой-нибудь виджет/иконку в статусбаре, которая отобразит yandex-disk status.
А какой нибудь корпоративный тариф планируется? так что бы юзеров можно было подключать/отключать, распределять между ними место и прочее?
Пока корпоративные тарифы не планируем. Видимо, вопрос не столько про тарифы, сколько про разные уровни доступа, да?
Отличная новость!
А нет возможности синхронизировать отдельно взятую папку на клиенте, с папкой яндекс.диска?
Если вы про подпапку, то сейчас прямого способа это сделать нет.
Супер, а планируется просмотр истории/откат изменений? Очень полезная фича была бы.
Это второй любимый вопрос на Хабре к Диску. После вопроса про наличие Linux-клиента. :)
Думаем. Спасибо.
Хоть и оффтоп, но думается пользователей ПДД которые жду яндекс диск больше, чем пользователй Linux, с теми же ожиданиями. Ждем яндекс диск для пользователей ПДД!
В голову приходит только одна расшифровка ПДД, но она явно никак не связана с я.диск, можно поинтересоваться, кто такие «пользователи ПДД»?
Почта для доменов
Спасибо, конечно., но всё-это и из rsync прекрасно работает, если диск смонтирован. Или он что-то еще умеет? Как насчёт поддержки прокси?
После этого в папке .config, расположенной в домашнем каталоге, будет создан конфиг, в котором можно будет настроить путь к папке синхронизации (можно указать в консоли вручную), прописать путь к файлу токена, указать папки, которые будут или не будут синхронизироваться, и прописать настройки прокси-сервера.

Статью не читай, быстрее комментируй;)
Планируются ли deb- и rpm-пакеты под процессорные архитектуры, отличные от i386 и amd64, например, powerpc?
Под какую конкретно архитектуру и дистрибутив вам нужен Яндекс.Диск? Если не сложно, расскажите, пожалуйста, зачем вам нужна такая экзотическая платформа?
Конкретно интересует powerpc и Debian. Использую WD MyBookLive, пытался подключить Яндекс.Диск по WebDAV, но не удалось, подробнее можно посмотреть здесь.
Мы подумаем.
Чего-то надумали уже или всё ещё в раздумьях?
А еще arm. Под ним последнее время все более и более интересные железки появляются, например odroid.
и MIPS
Про MIPS не думали. А где вы хотите использовать Диск под MIPS?
NAS'ы и роутеры, они сейчас заметно добавили мощности.
НЛО прилетело и опубликовало эту надпись здесь
можно попробовать запустить под qemu-user. Но не знаю, насколько медленно это будет.
НЛО прилетело и опубликовало эту надпись здесь
Также интересует ARM.
палец вверх за ARM, davfs на raspberry pi не радует.
Круто, жду ebuild, можно будет наконец то особо важные и не большие вещи бэкапить в облако!
Ога :) Ждём ебилдов!
проще самому написать
А сорцов не будет?
Пока нет.
а когда будут?
Если честно, в Hardened Gentoo очень раздражает невозможность собирать приложение самостоятельно, используя hardened-gcc. Особенно когда приложение написано на C/C++ и активно работает с сетью (а значит может содержать удалённо эксплуатируемые уязвимости).
Очень рад возможности использовать Диск под линукс.

Возможно я что-то пропустил, но по-моему опыту работы с Dropbox, в синхронизаторах не хватает возможности создавать фильтры, например так, как это сделано в Git. Т.е. создается файлик в директории, в котором для всех поддиректорий прописывается что файлы например с расширением *.obj не должны синхронизовываться. Знает ли кто какие-то принципиальные ограничения для таких систем на это опцию?

Такая штука могла бы стать киллер-фичей ;)…
Вот это реально была бы мега-фича! И с точки зрения реализации совершенно несложно: прочитать файл с масками, и перед синхронизацией дополнительно прогонять через фильтр на предмет соответствия маскам.
Вы говорите об одном файле в корне Диска?
Можно один хотя бы. Можно о файлках в любой папке, действующей в глубь с возможностью отмены фильтров в родительских папках. Самый лучший пример это технологии файлы ".gitignore" в CVS Git.
А зачем он нужен, если оно через WebDAV работает с чем угодно?
Быстрее и больше возможностей. Собственно, это описано в посте.
Интернет бывает не всегда и не везде
С тем же успехом можно веб-интерфейсом пользоваться (если не нужно монтирование к ФС).
Клиент позволяет синхронизировать файлы, которые всегда доступны в оффлайне.
Насколько я понимаю, данные в облаке не шифруются? Или шифруются доступным вам ключём? В первом случае о безопасности хранимых данных говорить вообще не приходится. Во втором — есть вероятность их слива компетентным органам.
Когда это нужно — что мешает зашифровать данные со своей стороны?
геморойность и негибкость этого подхода.
НЛО прилетело и опубликовало эту надпись здесь
Тогда зачем все эти заморочки. Можно и на ftp кидать зашифрованный файл.
Я хочу сервис, где расшифровка происходит у меня локально. Желательно, чтобы исходники были открыты и контроллируемы сообществом. Клиент можно было собрать у себя локально. Таким образом я точно буду знать, что мои данные, лежащие где-то в неподконтрольном мне облаке, хранятся безопасно.

Это было бы действительно конкурентным преимуществом, а не фигня, типа на n GB больше.
Использую encfs поверх яндекс.диска по webdav.
Открыты все исходники, какие только можно. Всё, вроде бы, безопасно.
Да какой толк в открытых исходниках, когда данные передаются на сервер незашифрованными (ну или ключ в руках у администраторов облака). Попровьте меня, если я ошибаюсь.
ещё раз — encfs. Шифрование локально. Моим ключом. На сервер уезжают уже шифрованные данные.
Я понял. Просто сначала подумал, что это встроенный функционал.
Есть такой сервис — SpiderOak. Шифрует на стороне клиента, есть клиенты под разные ОС, может не только синхронизировать, но и просто делать бэкап.
Если зарегистрироваться по моей реферальной ссылке, дадут на 1 ГБ больше ;)
а они исходники клиента распостраняют? чтобы самому собрать?
Часть открыта, но пока не все. Пишут, что в планах есть сделать открытым клиент.
Таким образом я точно буду знать, что мои данные, лежащие где-то в неподконтрольном мне облаке, хранятся безопасно.

Вы специалист по СКЗИ и обладаете навыком анализа криптоалгоритмов на уязвимости? Завидую по белому. Моих навыков хватает только на то, чтобы проверить что вроде бы алгоритм имплементирован без явных закладок и не более. Пускай даже я точно знаю, что алгоритм имплементирован без закладок и ошибок. Но вот точно знать, что в алгоритме нет ошибок и уязвимостей мне не дано :(
Я точно не специалист, но если исходники будут открыты, велика вероятность, что кто-то из сообщества найдёт закладку. По крайней мере будут стабильные проверенные версии исходников с хешами, которые не вызывают нареканий у сообщества уже несколько месяцев. И этому можно будет доверять.
Доверять, но не точно знать.
Ну то что земля круглая мы тоже точно не знаем, просто доверям и это даёт положительные результаты на практике.
Здорово, что интерфейс не гуёвый!
Яндексу большой плюс за такой поворот событий!

Например, я теперь вполне реально рассматриваться, как альтернатива Дропбоксу.

По поводу GUI выскажусь «за», не смотря на то, что «гикам достаточно консоли».
Да, действительно достаточно, но что-то подобное в трей, как у того же Дропбокса совсем не помешало бы.

А для «не гиков» это просто глоток свежего воздуха.
У дропбокса демон вполне себе с иконкой в области уведомлений, например.
Вот я как раз про то же.

Но возможность запуска голой консоли на какой-нибудь впске без гуя тоже очень важна.

В общем, это два важных фактора.
у меня яндекс диск подключен уже наверное пол года (как и некоторые другие хранилища), как бы davfs никто не отменял. Поэтому не вижу смысла менять шило на мыло.
11 метров, а проект минимум от 19 июня начат, да ещё и unstable. Скажите честно, это кто-то из сотрудников в свободное время сделал?
Яндекс.Диск для Linux такой же полноценный клиент с точки зрения разработки, развития и поддержки, как остальные наши десктопные клиенты.
НЛО прилетело и опубликовало эту надпись здесь
Вопрос по клиентскому интерфейсу. Можно ли было его реализовать иначе, с тем чтобы использовать стандартные линуксовые инструменты для виртуальных файловых систем, такие как fuse, и тем самым сделать Яндекс.Диск «прозрачным»? Например, по этому принципу сделаны gmailfs (проект не гугловый и к настоящему времени вроде бы загнулся) и sshfs.

Я понимаю, что самый смак в эффективной и гибкой синхронизации, так что все потроха совсем спрятать от пользователя не удастся. Но можно было бы сделать соответствующий набор утилит (а также атрибуты файлов) опциональным, чтобы для пользователя, который не гонится за эффективностью, Яндекс.Диск был бы полностью изоморфен sshfs.
Так Яндекс Диск с самого начала поддерживал WebDAV, с соответственно может быть подмонтирован с помощью davfs, без автоматической синхронизации. (если я правильно понял о чём вы)
А можно ли управлять синхронизацией поверх davfs? В частности, можно ли скормить ему нетривиальный конфиг-файл?

Насколько я понимаю, сейчас предлагается два варианта использования Яндекс.Диска: с помощью утилиты yandex-disk и через davfs, и они совершенно независимы.
В случае davfs синхронизация не нужна: все обращения идут на сервер. Оно вообще не будет работать без сети и будет медленным. Но зато данные всегда актуальны и это стандартный протокол.
А если есть синхронизация, то надо где-то эти файлы хранить на локальной ФС. зачем тогда городить fuse, если их все равно класть на локальную ФС?
Насчет davfs я плохо знаю матчасть. Раз с его помощью нельзя локально кэшировать, предыдущий вопрос снимаю.

зачем тогда городить fuse, если их все равно класть на локальную ФС?

Почему «городить»? Как раз fuse тем и хорош, что городить ничего не надо — со стороны выглядит как обычная подмонтированная ФС, все приложения могут работать с файлами, не зная, что они то ли в облаке, то ли в локальном кэше.

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

Разумеется, в идеале система, как я ее вижу, должна работать и без сети. Когда говоришь fusermount, должно показываться закэшированное состояние. При этом впоследствии могут возникнуть проблемы синхронизации, если с менять состояние из нескольких разных мест, но это уже универсальная проблема.
Почему «городить»? Как раз fuse тем и хорош, что городить ничего не надо — со стороны выглядит как обычная подмонтированная ФС, все приложения могут работать с файлами, не зная, что они то ли в облаке, то ли в локальном кэше.

Так файлы на ФС тоже выглядят как файлы на обычной подмонтированной ФС. Стороние приложения не знают, что эти файлы синхронизуются.
fuse разве что позволил бы сделать синхронизацию on demand. Приносить новый файл не когда он появился на сервере, а когда приложение захотело его открыть. Но зачем?
И, кстати, неверно, что файлы надо класть на локальную ФС. Кэш может быть устроен сколь угодно хитро, не обязательно в виде доступных пользователю файлов.

Это верно, но нужно ли делать хитроый кэш? Если данные хранятся на диске не в виде доступных пользователю файлов, это всего-лишь значит, что они хранятся в некой самописной ФС, располагающейся в файле. Зачем делать какие-то усложнения и писать свою ФС?
НЛО прилетело и опубликовало эту надпись здесь

Прошло 10 лет. WebDAV нормально не работает с ЯД, очень сильно тупит. Консольная утилита не изменилась.

Очевидная проблема которая не решается. Хочу складывать бекапы на ЯД. Но из инструментов есть или очень тупящий WebDAV через fuse, который не гарантирует, что файл отправится в облако. Или хорошо работающий скрипт синхронизации, который умеет только синхронизировать папку и облако. И с помощью его нельзя отправить файл в облако освободив место на диске.

rclone

В Status не хватает отдельной строчки просто с объёмом диска, а ещё хотелось бы команду которая выдает ссылки на все публичные файлы в диске.
Да, добавим показ объема Диска.
А как вы будете использовать команду, которая выдает ссылки на все публичные файлы в диске? Какой use-case?
В скриптах, например.
для меня было бы вполне достаточно команда которая выводит в консоль, путь относительно каталога синхронизации, название файла, даты, и ссылку, чтобы без труда можно было бы найти нужный фаил и ссылку на него, просто отсортировав тем же grep-ом по нужному параметру.
Да, хорошая идея.
Ой, ну туда ответил. Яндекс.Диск для Linux такой же полноценный клиент с точки зрения разработки, развития и поддержки, как остальные наши десктопные клиенты.
Репозиторий самопрописывается неправильно. dist.yandex.ru/repo.yandex.ru/yandex-disk/deb/ вместо repo.yandex.ru/yandex-disk/deb
И с socks что-то работать не хочет: Проверка прокси-сервера...Segmentation fault (core dumped)
Спасибо, что нашли баг c репозиторием. Уже поправили.
По второй проблеме, пожалуйста, отправьте нам через форму feedback2.yandex.ru/disk/desktop/other/ ссылку в Диске на core dump.
Пульнул.
Было бы неплохо, если бы помимо deb/rpm вы выложили и обычный tgz, и вместо -latest использовали номер версии (а -latest можно и симлинком сделать) — это бы упростило создание пакетов для других дистрибутивов (вроде Gentoo).
При необходимости нужные файлы можно выковырять из чего угодно. На моей машине из 1415 установленных пакетов только один использует .deb и два .rpm в качестве исходников, все остальные — обычные архивы. Был бы tar — я бы может сам ebuild сделал, а так лениво лезть разбираться как правильно работать с deb/rpm в ebuild-ах.

Кроме того есть общепринятые стандарты: должен быть доступен .tar с файлами приложения и README/INSTALL-инструкцией как их устанавливать, это программа-минимум. А предоставить дополнительно готовые пакеты для популярных дистрибутивов — это уже бонус. Более того, учитывая то, что большинство дистрибутивов всё-равно работают со своими репозиториями, и что их разработчики зачастую более корректно соберут пакеты под свой дистрибутив нежели разработчики конкретного приложения, реальная необходимость и польза от этих deb/rpm сомнительна — лучше бы разработчики приложения связались с разработчиками дистрибутивов и добились добавления своего приложения в стандартные репозитории — это было бы гораздо удобнее пользователям, чем скачивать deb/rpm с сайта приложения.
+1 за -ver-arch.tar.gz и минимальную документацию как установить и куда багрепортить, и в этом случае попасть во все дистрибутивы поможет комьюнити. Хотя открытость, это тоже немаловажный фактор, кроме вопроса о совместимости лицензий, контрибьюторам прийдется прибивать гвоздями зависимости к библиотекам. Changelog тоже «пустоват», учитывая тот фак, что в комментариях выше речь шла о исправлении некоторых багов. И судя по всему, не должно возникнуть сложности собрать пакет для mac os x, для установки через port.
учитывая тот фак, что в комментариях выше речь шла о исправлении некоторых багов.

Живо представил картину — marcel говорит коллегам «Фак — у нас баг» :)
Да, tgz будет полезен.
Вот только тапками не кидайте:
> rpm -Uvh --nodigest --nosignature http://repo.yandex.ru/yandex-disk/yandex-disk-latest.i386.rpm
...
Missing Dependency: libc.so.6(GLIBC_2.10) is needed by package yandex-disk-0.1.1.279-1.fedora.i386
> uname -a
Linux 2.6.18-348.6.1.el5 #1 SMP Tue May 21 15:34:22 EDT 2013 i686 i686 i386 GNU/Linux
Package glibc-2.5-107.el5_9.5.i686 already installed and latest version

Под CentOS 5.9 не светит?
Ага, нашел, не светит :(
Но лучше бы сделать, 5.9 еще живая как никогда
Мы подумаем.
Подумайте пжалста — обновление на 6-ю версию та еще неприятность — никак не решусь.
Теперь поверх этой штуки спокойно прикручивается encryptfs и отличный синкер. Кстати, можно писать даже не на эту fs, а синкать зашифрованный home (в шифрованном виде).

Попробую на днях, оценю.
Чтобы ставить и потом обновлять через apt-get можно прописать в /etc/apt/sources.list

#Yandex-disk
deb repo.yandex.ru/yandex-disk/deb stable main

Кто-нибудь знает как добавить ключик, чтобы не получать такую ошибку при обновлении списка пакетов?

$ apt-get update
Get:1 repo.yandex.ru stable Release.gpg [490 B]

W: GPG error: repo.yandex.ru stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EFC4571D7C90E5AF
Импорт GPG-ключа для пакета .deb
wget -O YANDEX-DISK-KEY.GPG repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
sudo apt-key add YANDEX-DISK-KEY.GPG

Подробнее можно почитать в нашей Помощи —  help.yandex.ru/disk/cli-clients.xml#cli-install
хм, что-то у меня dist.yandex.ru добавился, это же вроде внетренний ресурс?

Err dist.yandex.ru stable Release.gpg
Could not connect to dist.yandex.ru:80 (84.201.156.230). — connect (110: Connection timed out)
Ign dist.yandex.ru stable Release
Ign dist.yandex.ru stable/main TranslationIndex
Err dist.yandex.ru stable/main amd64 Packages
Unable to connect to dist.yandex.ru:http:
Err dist.yandex.ru stable/main i386 Packages
Unable to connect to dist.yandex.ru:http:
Err dist.yandex.ru stable/main Translation-en
Unable to connect to dist.yandex.ru:http:
Err dist.yandex.ru stable/main Translation-ru
Unable to connect to dist.yandex.ru:http:
Fetched 4997 B in 1min 3s (79 B/s)
W: Failed to fetch dist.yandex.ru/repo.yandex.ru/yandex-disk/deb/dists/stable/Release.gpg Could not connect to dist.yandex.ru:80 (84.201.156.230). — connect (110: Connection timed out)

W: Failed to fetch dist.yandex.ru/repo.yandex.ru/yandex-disk/deb/dists/stable/main/binary-amd64/Packages Unable to connect to dist.yandex.ru:http:

W: Failed to fetch dist.yandex.ru/repo.yandex.ru/yandex-disk/deb/dists/stable/main/binary-i386/Packages Unable to connect to dist.yandex.ru:http:

W: Failed to fetch dist.yandex.ru/repo.yandex.ru/yandex-disk/deb/dists/stable/main/i18n/Translation-en Unable to connect to dist.yandex.ru:http:

W: Failed to fetch dist.yandex.ru/repo.yandex.ru/yandex-disk/deb/dists/stable/main/i18n/Translation-ru Unable to connect to dist.yandex.ru:http:

E: Some index files failed to download. They have been ignored, or old ones used instead.
Я выше писал, они репозиторий неправильно прописывали.
Супер! По описанию, клиент сделан умно и очень верно. Код тоже интересно было бы увидеть. У меня есть немного вопросов по реализации, если можно:
1. Так ли нужны strand-ы? У меня стойкое ощущение, что можно было бы обойтись одним потоком, обслуживающим boost::asio::io_service — код, думаю, проще без strand-ов. Нагрузка на процессор там минимальная, OpenSSL хеши считает очень быстро.
2. boost::asio подразумевает массированное использование callback-ов. Боролись ли вы с этим, не было ли попытки использовать корутины, чтобы асинхронный код выглядел последовательным, а не разорванным на несколько callback-ов?
3. Сколько человековремени ушло на разработку клиента?
Спасибо.
1. У нас много потоков. Strand'ы позволяют нам упростить синхронизацию, сделать ее более прозрачной.
И такая система проще масштабируется.
2. Нет, не использовали. Собираемся посмотреть на них. Мы использовали имеющееся ядро синхронизации от десктопных приложений, которое было написано на версии Boost, где еще не было корутинов.
Огромное спасибо!

А почему Диск не хочет использовать системные переменные для прокси-сервера и ему их надо кормить отдельно? Тем же грешит и виндовый клиент. Для меня очень неудобно — я часто катаю ноутбук по разным заказчикам, у всех разные настройки прокси.
Резонное замечание. Так и надо делать. :)
Раз уж клиент консольный, то пожалуй стоит добавить к посту установку для ленивых пользователей Ubuntu. Ниже приведенная цепочка команд добавит репозиторий Яндекса в список источников, скачает и установит GPG ключ от яндекса, обновит список пакетов и без лишних вопросов поставит консольный клиент:

echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/yandex.list > /dev/null && wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install -y yandex-disk
Спасибо, добавим в Help. Будет полезно для очень ленивых людей. :)
Позволю себе озвучить мечты:

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

— перетаскивание на иконку в трее для расшаривания и/или виджет;

— анализ текущего контента в Яндекс.Диске (по типу, размеру и так далее) и хотя бы жуть какой примерный прогноз в веб-интерфейсе и в виде уведомления (например «вам хватит места еще на 100 документов»);

— совместное редактирование документов (а вдруг, тогда бы это стало решающим аргументом в моем переходе с гуглосервисов);

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

Мечты конечно, ну а вдруг что-то реализуете.
Да, хорошие мечты. Правильно ли я понимаю, что большая часть все таки про GUI для Linux?
Про трей можно применительно и к OS X. Также хотелось бы иметь возможность ставить цветовые метки и определять приватные группы (один раз отправляю из приложения приглашения всем кому надо из соц. сетей или по почте, а потом они имеют доступ к открытым для них файлам).
К веб-интерфейсу большая просьба добавить возможность оставлять комментарии с уведомлениями, например «фотографии печенья с шоколадом маленького размера нам больше не нужны, можешь удалять из исходников».
Немного разошелся в мечтаниях)
Да, не плохо было бы. Следите за обновлениями на repo.yandex.ru/yandex-disk.
Возник следующий вопрос. Вот допустим я загружаю файл на сервер. Синхронизирую, он появляется в моей yandex-папке. Далее, я его из этой папки удаляю. На сервере он все еще есть, и удалится только после очередной синхронизации, но, допустим, я передумал, и хочу синхронизироваться таким образом, чтобы файл снова появился в папке. Как этого добиться?

yandex-disk sync --overwrite

Не помогает, причем мало того, после такой синхронизации файл также удаляется с сервера.

Ну, и поделюсь своим PKGBUILD, для Арчеводов.
PKGBUILD
pkgname=yandex.disk
pkgver=0.1.1.279
pkgrel=1
pkgdesc="Yandex.Disk console client."
url=http://disk.yandex.ru/
arch=(x86_64 i386)
makedepends=(binutils coreutils)
license=(custom)

if test "$CARCH" == x86_64; 
then
  ARCHT="amd64"
else
  ARCHT="i386"
fi

source=("http://repo.yandex.ru/yandex-disk/yandex-disk_latest_$ARCHT.deb")
md5sums=('e795bb2d91259eada77c746ceb26a9f3')
 
build() {
	tar xf data.tar.gz	
}
package() {
	mv usr/ $pkgdir
}



Прошу меня извинить, в выложенном PKGBUILD сумма посчитана только для amd64 пакетов.
Поправил:
PKGBUILD
pkgname=yandex.disk
pkgver=0.1.1.279
pkgrel=1
pkgdesc="Yandex.Disk console client."
url=http://disk.yandex.ru/
arch=(x86_64 i386)
makedepends=(coreutils tar)
license=(custom)

if test "$CARCH" == x86_64;
then
  ARCHT="amd64"
  md5sums=('e795bb2d91259eada77c746ceb26a9f3')
else
  ARCHT="i386"
  md5sums=('c8ca93e7ae951db2601074336a4c7563')
fi

source=("http://repo.yandex.ru/yandex-disk/yandex-disk_latest_$ARCHT.deb")

build() {
        tar xf data.tar.gz
}
package() {
        mv usr/ $pkgdir
}


В AUR уже есть пакет. Единственное, там ссылка не на последнюю версию, так что надо вручную поправить PKGBUILD при установке.
Посмотрел, и правда есть. Я какой-то не внимательный последнее время, перед тем, как писать свой PKGBUILD, глядел же в AUR.
Правильная команда такая: yandex-disk sync --read-only
ЧЯДНТ
[svon@arch Ydisk]$ cat ~/.config/yandex-disk/config.cfg | grep dir
dir="/home/svon/Ydisk"

[svon@arch Ydisk]$ pwd
/home/svon/Ydisk

[svon@arch Ydisk]$ ls
1.jpg  1.png  arch_wallpaper0.png  IMG_29082013_032219.png  

[svon@arch Ydisk]$ rm 1.jpg 

[svon@arch Ydisk]$ ls
1.png  arch_wallpaper0.png  IMG_29082013_032219.png 

[svon@arch Ydisk]$ yandex-disk sync --read-only
Starting daemon process...Done
Syncing directory: /home/svon/Ydisk
Directory synced                                      

[svon@arch Ydisk]$ ls
1.png  arch_wallpaper0.png  IMG_29082013_032219.png  




Демон не поднят. Синхронизирую вручную.
Спасибо за клиент, вещь нужная. Скажите пожалуйста, а нет в планах сделать сохранение даты изменения файлов? Сейчас с удобством было синхронизировал файлы на двух машинах, но заметил, что даты не сохранились.
Мы думаем над этим.
а я рад что консольный клиент, огромное спасибо вам. Я люблю консоль.
Простите за откровенно ламерский вопрос. А как ему скормить папку YandexDisk ранее созданную в винде? Указываю в настройках путь к этому каталогу, а апплет не желает его есть, создавая копию папки с названием yandexdisk (маленькие буквы) и копируя туда содержимое с облака.
Покажите, пожалуйста, конфиг (если настроено через setup) или командную строку. Можно прислать это в службу поддержки feedback2.yandex.ru/disk/desktop/other/.
А для FreeBSD будет пакет?
Пока не думали об этом.
Как из консоли увидеть ссылки на опубликованые файлы?
Сейчас список вывести нельзя. Но можно второй раз опубликовать, тогда ссылка не изменится и выведется в консоль.
Очень логично было бы если можно.
Как вариант — завести специальную папку ( например с именем public ).
Тогда ссылки на файлы внутри этой папки можно получить вот так:

(DIR=$(cat ~/.config/yandex-disk/config.cfg | awk '/dir/{split($0, a, "="); gsub("\"","",a[2]); print a[2]}'); for i in $DIR/public/*; do echo $(basename $i); yandex-disk publish $i | grep -E "^http"; echo ""; done;)


Это однострочный скрипт для bash. Можно выполнять из любой папки. Выводит сслыки на файлы в папке public, которая расположенна в яндекс-папке текущего пользователя.
Внимание, наличие папки public не проверяется.
Очевидные недостатки это скрипта думаю понятны и Вам. Не то что бы критично, но хочется официального решения. По правде говоря публичными ссылками как-то не пользуюсь — по-страринке шлю pdf атачами. Но если бы был такой функционал, слал бы просто ссылки. Важно именно иметь одну и ту же ссылку, потому что репаблиш делает старую неактивной.
Конечено понятны. И я так же понимаю, что официальное решение было бы предпочтительней, но на безрыбье и рак рыба. Если хорошенько подумать, можно написать строчку чуть посложнее, которая будет решать уже большинство проблем.

Если я правильно понял, то репаблиш не делает старую неактивной. В случае, если файл уже и так на я-диске и публичен просто выводится ссылка на него.
О, а раз он весь такой гиковый и консольный, то, может, и под ARMv5/ARMv6 скомпилите? Чтобы можно было юзать на всяких Raspberry Pi и NAS-ах?
Вот здесь отвечал на все вместе.
Нужная вещь для бекапов. Похоже на клиент для Dropbox. WebDAV неудобно для этого использовать, особенно с дурным каналом.

Раньше на Яндекс.Диск запрещалось выкладывать архивы и зашифрованные файлы. Сохраняется ли это ограничение сейчас? Выше собираются использовать encfs + Яндекс.Диск. Не против ли Яндекс? Что будет, если зарегистрировать 100 аккаунтов и получить таким образом бесплатно хранилище в 1ТБ? Ещё и клиент адаптировать, чтобы сам раскидывал данные по разным аккаунтам.

Я бы хотел сам собрать клиент из исходников, благо все используемые библиотеки есть. Планируется ли публикация исходного кода клиента?
В настоящий момент нет ограничений на хранение зашифрованных данных. Подробнее, можно почитать в Условиях использования Диска.
По поводу исходников было выше обсуждение.
Вот это реально ШАГ.
Красавцы
Команда exclude позволит исключить папку из синхронизации...
$ yandex-disk exclude
Ошибка: неизвестная команда 'exclude'

Что-то тут не так…

$ yandex-disk -v
Яндекс.Диск 0.1.1.281
Хотя есть опция --exclude-dirs=DIR1,DIR2.
Поправьте в посте.
А под Windows не планируете сделать поддержку хардлинков и симлинков? Skydrive вот поддерживает и это удобно, потому что структуру папок перетаскивать из разных мест файловой системы в папку Яндекс диска неудобно, но сам яндекс-диск нравится и пользуюсь. Вот если бы он синхронизировал содержимое созданных в папке яндекс-диска линков, то это было бы замечательно.
Исследуем этот вопрос.
Будем ждать :)
Если нет исходников, то может быть как-то можно получить бинарники под МакОС? Было бы очень круто.

Место в верхнем меню освободить никогда не мешает.
В настоящий момент такой сборки нет.
Удобная должно быть вещь, надо будет попробовать. Во всяком случае у меня потребность в консольном клиенте есть. Я до этого вот этим пользовался dropbox+python
GUI не нужен. нужна интеграция с основными файловыми менеджерами — thunar, nautilus, dolphin. что там ещё?
НЛО прилетело и опубликовало эту надпись здесь
Молодцы, что ещё сказать. Теперь начну пользоваться ;-)

Добавьте ещё +1 за GUI. Как минимум, в нотификационной области должно быть видно состояние синхронизации (не идёт, идёт, нет связи, место кончилось) и состояние места.
Когда же уже исходники то появятся? Я с gentoo негодую :(
Огромное спасибо. Никогда ещё удалённое хранилище не было таким удобным.
а нет ли проблем с работой на NTFS-разделах?

например, у меня данные Я.Диска находятся на разделе, общем для Windows и Linux, и сначала все было ОК, но с каких-то пор процесс при запуске start или sync начал бесконечно молотить (вроде на одном ядре ЦП) совместно с /sbin/mount.ntfs, без использования сети.
пробовал заново синхронизировать в чистую папку — то же самое.
в каком логе можно посмотреть, что он вообще делает?

вывод strace: pastebin.com/iBtrt0AH
Кстати, регулярно падает на одной из машин. Подозреваю, что из-за симлинков.
Только что поставил, Ubuntu 13.04.4 x64 — через несколько часов ест 5,2 гигабайта оперативной памяти (всего 8 RAM и система стала тормозить) — я папку для синхронизации такого размера и поставил. CPU ~ 130% ядра.
Как можно вызвать клиент из python-скрипта, запущенного как cgi?

Питон с помощью subprocess пытается выполнить:
yandex-disk publish --dir=/home/user/yadisk/ --auth=/home/user/.config/yandex-disk/passwd /home/user/yadisk/README.txt

если запускать python-скрипт из баша — получаем ссылку на опубликованный файл.

Если же скрипт запущен как cgi апачем от того же юзера:

Error: failed to connect to daemon process

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

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

2. Очень нужна возможность синхронизировать только определенные директории, а не исключать все остальные.

У меня в корне Диска лежит дескколько директорий: Backup, Изображения, Загрузки и т.д. Синхронизировать с сервером мне нужно только Backup/Server1, и получается, что я должен перечислить все остальные в exclude-dirs:
exclude-dirs="Изображения/,Загрузки/,Backup/Server2/,Backup/Server3/, и т.д."

Выходит, что если я добавлю еще какие-то директории, то нужно бежать на все серверы и исключать их из конфига, иначе они будут выгружаться. Это очень неудобно.
установил клиент. Настроил.
Изменения которые вношу через веб-интерфей, мгновенно появляются на пк. Если делаю изменения на ПК (добавляю новые файлы или папки) — ничего не меняется, команда status показывает, что всё синхронизировано.
Что я делаю нет так?

тех инфа
volos@ubuntu-35:~/Yandex.Disk$ yandex-disk -v
Yandex.Disk 0.1.4.504
© 2013 YANDEX
volos@ubuntu-35:~/Yandex.Disk$ uname -a
Linux ubuntu-35 3.5.0-25-generic #39~precise1-Ubuntu SMP Tue Feb 26 00:07:14 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux


Вы бы еще рассказали, как корзину Яндекс-диска из консоли очистить — вообще бы цены не было.
$ ydcmd --async rm trash:/


Ну или через curl запрос дернуть к api :)
Репозиторий куда-то переместился? Везде 404.

А как его в openSUSE установить? rpm только для fedora же.

файл /usr/share/man/man1 из устанавливаемого пакета yandex-disk-0.1.6.1080-1.fedora.x86_64 конфликтует с файлом из пакета filesystem-84.87-4.2.x86_64

Зарегистрируйтесь на Хабре, чтобы оставить комментарий