Потоки данных Альтернативы NTFS - Хорошая или плохая Идея?

Я хотел бы сохранить некоторые Связанные с приложением Метаданные для Файлов, и Потоки данных Альтернативы NTFS (AltDS) позволят мне хранить эти метаданные непосредственно по файлам, а не в отдельной базе данных.

Я просто не чувствую, что это - хорошая идея. Я знаю, что это только работает над NTFS, но по крайней мере если пользователь копирует/перемещает файлы в диск неNTFS, они получают Предупреждение из Windows (да, да, никто не читает предупреждения, я знаю) -

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

Я просто задаюсь вопросом, для чего они могут обоснованно использоваться? Они должны быть полностью оставлены для Microsoft Apps для использования? Или есть ли своего рода общая политика, какие типы приложений могут использовать их (кроме вредоносного программного обеспечения)?

Править: Просто для уточнения, какова моя идея была. Я нахожусь на ранних стадиях записи маленькой системы управления документами для меня. Поскольку я хочу иметь свободу переместить файлы, я хочу сохранить метаданные по файлу так, чтобы, если я перемещаю/переименовываю/изменяю их, мое приложение все еще распознало их. Это могли или быть все Метаданные или просто GUID, который работает с отдельной базой данных.

Суммировать данные точки:

Профессионалы:

  • Метаданные перемещаются с файлом, таким образом, никакая потребность распознать его посредством хеширования или имени файла
  • Работы со всем FileTypes, даже .txt файлы, где невозможно хранить любые данные в самом файле

Недостатки:

  • Только работы над NTFS, который не может быть файловой системой по умолчанию в будущих версиях Windows
    • Хотя меня удивило бы, если MS автоматически не преобразовывает их, если они когда-нибудь собирают WinFS
  • AltDS остаются, даже если мое Приложение удаляется
  • Проблемы конфиденциальности
  • Хрупкий
    • Большинство Карт с интерфейсом USB является FAT32. Многими частными файловыми серверами является Linux. Загрузка файла из Интернета должна только передать файл, но не потоки. Короче говоря: довольно легко потерять их.
6
задан 3 revs, 2 users 94% 20 January 2015 в 17:03
поделиться

7 ответов

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

Прежде всего, как вы уже отмечали, потоки AD работают только на NTFS. Если есть хоть какой-то шанс, что вам понадобится хранить эти метаданные в файловой системе FAT, то вам понадобится какой-то механизм отката. Современные ПК, скорее всего, будут иметь внутренние жесткие диски в формате NTFS, но большинство USB-накопителей, с которыми вы сталкиваетесь, все еще имеют FAT-формат. Имейте это в виду, если ваши пользователи будут хранить файлы данных на флешках.

Кроме того, я не могу придумать никаких технологических причин для избежания AD потоков, но я все равно буду опасаться их использования. Люди склонны нервничать по поводу приложений, которые "прячут" от них данные, независимо от намерений. Рассмотрим фиаско Sony rootkit, и так далее. Я не говорю, что ваше приложение настолько плохо, но люди (особенно те, кто менее подкован в технологиях) могут не различать его. Тем не менее, я разрешаю им использовать ваше приложение. Конечно, проблема оставления AD-потоков после деинсталляции все еще очень реальна. Возможно, вам стоит подумать о том, чтобы дать людям, запустившим деинсталлятор, возможность запустить программу для поиска своих дисков и очистки оставшихся потоков.

Также помните о принципе KISS. Действительно ли использование AD-потоков является самым простым способом эффективного решения проблемы хранения метаданных вашего приложения? Если да, то, возможно, потоки AD являются хорошей идеей, но если нет, то я бы серьезно подумал о другом подходе.

.
4
ответ дан 8 December 2019 в 13:00
поделиться

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

Если файл, с другой стороны, находится под вашим собственным контролем, то, если AltD - эффективный способ выполнить эту работу, то вперед.

1
ответ дан 8 December 2019 в 13:00
поделиться

Плохая идея для тебя, плохая идея для РС. Я думаю, что они действительно были попыткой конкурировать с архитектурой файлов данных и ресурсов вилки Mac в далекие времена. Если файлы Mac FS могут иметь 2 вилки, то у нас будут неограниченные "вилки", и, возможно, мы в конце концов придумаем, как их использовать

.
1
ответ дан 8 December 2019 в 13:00
поделиться

Еще одна загвоздка: резервное программное обеспечение. Некоторые игнорируют его, некоторые не восстанавливают его, а некоторые поддерживают его, но ничего не делают без вашего ведома.

6
ответ дан 8 December 2019 в 13:00
поделиться

Я могу придумать одну хорошую причину , а не , чтобы использовать их, и это маленькая лакомый кусочек из их руководства "как использовать" :

Альтернативные потоки данных являются строго особенностью файловой системы NTFS и могут не поддерживаться в будущих файловых системах . Однако, NTFS будет поддерживаться в будущих версиях Windows NT.

Теперь... как это сформулировано, я полагаю, технически вы в безопасности. Но если Microsoft когда-нибудь решит заменить/удалить NTFS - а в какой-то момент они все-таки подошли довольно близко - тогда вам придется схватиться за обновление программного обеспечения, чтобы оно работало на более новых машинах.

Как бы маловероятно это не казалось сейчас, я думаю, что это менее маловероятно , чем внезапно оказаться неспособным подключить базу данных SQLCE или XML-файл, хранящийся в AppData пользователя.

Сказав это, я уверен, что существуют некоторые сценарии, которые оправдывают использование ADS. На мой взгляд, это просто один из тех случаев, когда, если вы не абсолютно уверены в том, что это правильный инструмент, то, скорее всего, это неправильный инструмент.

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

P.S. Очистители реестра больше не используются? Почему мне никто не сказал!?

3
ответ дан 8 December 2019 в 13:00
поделиться

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

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

.
1
ответ дан 8 December 2019 в 13:00
поделиться

Альтернативные потоки данных необходимы для NTFS и всегда будут поддерживаться. Когда файл, к которому они прикреплены, удаляется, они также удаляются - так что не беспокойтесь о том, что они будут «торчать»

. Как уже говорили все остальные, есть проблемы с резервным копированием, копированием в другую файловую систему и паранойей в отношении ADS.

2
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: