LINUX.ORG.RU
ФорумTalks

Предложение по популяризация xattr


0

0

Решил тут привести в порядок свою коллекцию фильмов. Переименовывал их в читабельные имена (без всяких .x264.[torrents.ru].mkv), забивая на то, что теперь их не получится раздавать торрентом. Потом решил воспользоваться фичей наутилуса - назначать файлами «эмблемы» (можно еще комментарии), помечая значком понравившиеся фильмы. Но тут возникла проблема - а сохранны ли эти данные? Если потом файлы будут в другом месте - все потеряется?

Похоже всю эту информацию Nautilus хранит где внутри $HOME (опровергните если не так - я не нашёл где, gconf:/apps/nautilus/desktop-metadata не то). Использовать xattr он тоже не может - ФС примонтирована без оной поддержки.

В связи с этим подумалось мне, что было бы неплохо внедрить xattr для desktop-ных задач. Подумалось не только мне - вот рекоммендации freedesktop: http://www.freedesktop.org/wiki/CommonExtendedAttributes

Я придумал еще такие аттрибуты: display_name, display_name[$lang] - поможет избавится от гемора XDG_DESKTOP_DIRS с локализацией папок в домашнем каталоге и избавит от проблем с набором в консоле всяких «Документы». Аттрибут hidden - поможет избавится от файлов .hidden в nautilus (если кто не знает - там можно прописать файлы, которые надо скрыть). Можно сделать аттрибут для ассоциации файла с приложением (а не всех файлов данного mime type) и еще много чего.

Есть идея заняться реализацией этой идеи летом. Сделать либу, которая работает с метаданными xattr, а если они не поддерживаются сохраняет их в файле .metadata (для vfat, например), а если уже и там облом (read only) - то думает как сохранить в $HOME. Далее пропатчить nautilus и другие программы для использование всего этого.

Вопрос к ЛОРу - нужно ли?

★★★★★

>поможет избавится от гемора

Нет, от геморроя избавит только операция. И свечи.

По сабжу: нужно.

derrix
()

Хм, поддержка расширенных метаданных прямо в ФС — это вроде хорошо. Только если будут метки и оценки, то я их всё равно не буду заполнять.

Yareg ★★★
()
Ответ на: комментарий от derrix

> Что-то вроде user.nautilus.*, или как?
Да, именно так. Уже есть несколько user.xdg.* на freedesktop.

snizovtsev ★★★★★
() автор топика

Насколько я помню, там и MIME-тип можно указывать, только не знаю, читает ли его кто оттуда.

Deleted
()
Ответ на: комментарий от derrix

Идея в Ubuntu Brainstorm: отображать статус загрузки файла (wget, firefox, transmission) в nautilus вот таким способом.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от Deleted

> Насколько я помню, там и MIME-тип можно указывать, только не знаю, читает ли его кто оттуда.
Можно, user.mime_encoding поддерживает apache через модуль mod_mime_xattr. Можно еще user.apache_handler задавать.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Хотя может сейчас уже и другие умеют, давно это было.

Deleted
()
Ответ на: комментарий от snizovtsev

>Да, именно так. Уже есть несколько user.xdg.* на freedesktop.

Привязка к наутилусу? Вроде бы, в своё время линуксоиды бежали от тесной интеграции проводника в ОС. One OS, one Explorer... Как с этим будут работать другие файловые менеджеры? Не лучше ли сделать сию фичу софтонезависимой (не user.nautlius.*, а user.someshit.*)?

Идея в Ubuntu Brainstorm: отображать статус загрузки файла (wget, firefox, transmission) в nautilus вот таким способом.

Хорошая идея.

derrix
()
Ответ на: комментарий от Yareg

> Только если будут метки и оценки, то я их всё равно не буду заполнять.
Метки не планирую - они бесполезны без возможности выборки по ним. А для выборки нужно индексировать - единое хранилище, от чего я как-раз хочу избавиться. Кому надо уже могут использовать всякие tracker или beagle.

snizovtsev ★★★★★
() автор топика

Удастся ли при таком подходе гарантировать сохранность метаданных
при передачи файлов между разными носителями (на которых разные ФС)?

Поэтому я сторонник хранения метаинформации в самих файлах с
использованием чего-то типа XMP.

Sphinx ★★☆☆
()
Ответ на: комментарий от derrix

> Как с этим будут работать другие файловые менеджеры? Не лучше ли сделать сию фичу софтонезависимой (не user.nautlius.*, а user.someshit.*)?
Обычно когда такие вещи приживаются их стандартизируют в freedesktop и становятся user.xdg.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от Sphinx

> Удастся ли при таком подходе гарантировать сохранность метаданных
при передачи файлов между разными носителями (на которых разные ФС)?
Да, с этим проблема - нужна поддержка со стороны самих программ.

XMP

Спасибо, этот вариант тоже рассмотрю.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от snizovtsev

XMP не нравится тем, что модифицирует файлы. Это иногда критично (поменяется MD5, например). Разве что thumbnails так хранить.

snizovtsev ★★★★★
() автор топика
Ответ на: комментарий от Sphinx

А почему XMP, а не чистый dublincore?

З.Ы. Всё-таки лично у меня нет доверия к поделкам Абобе :)

Kakerlak
()
Ответ на: комментарий от Deleted

Кроме того? он и доступ к ним для приложений обеспечивает.
Так что идеальным мне видится вариант, с использованием в самих приложениях nepomuk и какого-то механизма для хранения данных не только в самой базе nepomuk-а, но и в фс.

CyberTribe ★★
()
Ответ на: комментарий от CyberTribe

>он и доступ к ним для приложений обеспечивает

xattr от приложений тоже не спрятан.

Правда внутри файла оно таки надёжнее…

Deleted
()

Да, нужно. Хорошая идея. Xattrs вообще полезны.
Вот кстати, поддержи решение #8, там как раз про это.
http://brainstorm.ubuntu.com/idea/24130/

А может тебе на brainstorm.ubuntu.com написать идею?
Так удобнее продвигать будет. Может и Марку понравится...

ls-h ★★★★★
()
Ответ на: комментарий от Deleted

Мне ее часто не хватает. Давайте продвигать!

Кто напишет письмо Марку?
.... шутка :)

ls-h ★★★★★
()

если что... прошу внести в протокол: проверочные суммы не помешало бы добавить, чтобы, например dc-клиенты не перепроверяли файлы после перемещения

n01r ★★
()
Ответ на: комментарий от Deleted

nepomuk, пожалуй, даст более удобный способ доступа к этой информации. Имхо.

CyberTribe ★★
()

Как ты потом по ним искать будешь? Только один вариант — дублировать данные в индексе. А там делать синхронизацию.

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

Или оставить как есть сейчас — фс отвечает только за хранение, а метаданные и поиск по ним — задача ДЕ. При копировании через ДЕ метаданные копируются, при копировании через консоль — сам себе злобный буратино. Зато нет смешивания всего и вся.

ChALkeR ★★★★★
()

Нашёл, где nautilus хранит все это. Через GVFS attributes. Например, так можно установить эмлемы к файлам: gvfs-set-attribute $file metadata::emblems '[favorite]'
Сами данные хранятся в ~/.local/share/gvfs-metadata/

snizovtsev ★★★★★
() автор топика

О Nepomuk-ах

Как там обстоят дела с взаимодействием оного с цайтгайстом? Т.е они не планируют использовать общую базу данных? Зачем это нужно? К примеру, я назначил кучу меток разным файлам(за пару лет их много скопилось). По каким-либо причинам меняю ДЕ. Значит, все мои метки пропадут?

ramon13666 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.