2009-12-30 4 views
6

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

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

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

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

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

подвести итог точки Дано:

Pros:

  • Metadata движется вместе с файлом, поэтому нет необходимости признавать его через хеширование или имя файла
  • работает со всеми Filetypes, даже файлы с расширением .txt где это невозможно хранить любые данные в самом файле

Cons:

  • работает только на NTFS, которая не может быть файловой системы по умолчанию в будущих версиях Windows,
    • Хотя это удивило бы меня, если MS не будет автоматически конвертировать их, если они когда-нибудь WinFS вместе
  • AltDS остаются, даже если мое приложение будет удалено
  • конфиденциальности относится
  • Хрупкий
    • Большинство USB-палочек - FAT32. Многие частные файловые серверы - это Linux. Загрузка файла из Интернета должна только переносить файл, но не потоки. Короче: довольно легко их потерять.

ответ

4

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

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

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

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

+0

Спасибо. Данные - это метаданные для системы управления документами. Это в основном что-то для себя и в раннем планировании, но я столкнулся с AltDS и хотя бы собрал некоторые мнения. Часть «скрывающих данных» на самом деле является хорошей точкой. Только очень немногие пользователи на самом деле действительно пытаются защитить себя от вредоносных программ (почти все хотят установить хрен, если у него симпатичный талисман), но большинство людей быстро перезвонили, как только кто-то вызывает приложение как вредоносное ПО, даже если это необоснованно. –

1

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

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

1

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

+0

Я думал об этом. Насколько я понимаю, Mac OS использует вторую вилку для метаданных, таких как дескрипторы приложений и типов для файлов (поскольку она не зависит от расширений файлов), что позволяет нам сказать: «Я хочу открыть этот .txt-файл с помощью этого редактора , но этот другой .txt-файл с другим редактором ". Это работает, потому что он аккуратно интегрирован с Finder, в то время как Windows Explorer, похоже, использует AltDS для раздражающего сообщения «Can not execute this file as it from the Internet». –

+0

@MichaelStum: вторая вилка в файле «old Mac OS» содержит неиерархический набор ресурсов, каждый из которых имеет 32-разрядный тип (обычно это четыре печатных символа ASCII), 16-битный идентификатор, необязательное имя и произвольное количество данных (я думаю, до двух концертов). В файлах приложений часто есть все в вилке ресурса и ничего в вилке данных, хотя есть исключения. Некоторые текстовые редакторы хранят исходный текст в вилке данных и такие вещи, как табуляция в вилке ресурса. Некоторые приложения хранят все в своей вилке ресурсов своих документов. – supercat

+0

На самом деле, ADS были добавлены в NTFS специально для совместимости с вилками MacOS, а не «конкурировать» с ними. Появились инструменты для перевода ресурсов в последовательно называемые ADS и наоборот, чтобы избежать потери данных при перемещении файлов в разных операционных системах. –

3

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

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

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

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

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

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

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

+1

Хороший вопрос. Да, WinFS должна была заменить NTFS, но, как я ее понял, WinFS по-прежнему поддерживает метаданные (поскольку это, по сути, встроенный в ОС SQL Server). Что касается ID3 и EXIF: они хранятся в самом файле, но это хороший момент. Я не проверял, что произойдет, если я загружу файл, который подается с сервера NTFS через IIS в файловую систему NTFS. Я надеюсь, что он убил AltDS, но не проверял. Мое использование будет похоже на EXIF, это для системы управления документами, где я хочу, чтобы данные (только GUID на самом деле) перемещались при перемещении файла. –

1

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

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

6

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

2

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

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

0

Одна вещь, которую я до сих пор не слышал, - это использование AltDS в приложениях, где определенная информация ДОЛЖНА быть скрыта (например, медицинские приложения), в то время как желательно НЕ скрывать другую информацию.

Причина, по которой я ЛЮБЛЮ AltDS, заключается в том, что: я могу разработать медицинскую систему визуализации, где я храню медицинские изображения в открытом виде (как BMP, т.е.) без каких-либо подробных сведений о пациенте, потому что те, AltDS. Бинго. Advantage: Если кто-то копирует файлы в накопитель большого пальца - ну, все, что получает человек, это BMP без информации о пациенте.

Резервное копирование/восстановление всегда неприятно - моим решением было перейти на фирменный формат файла в резервной копии, где информация о пациенте закодирована/зашифрована в том же файле, что и (необработанный) BMP.

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

В целом я L-O-V-E AltDS. Отсутствие поддержки ОС (не может видеть данные AltDS), отсутствие общих/общедоступных знаний (кто? Какие? Объявления? Какие рекламные объявления) и тот факт, что мне не нужно беспокоиться об этой дополнительной информации, чтобы синхронизация с основным файлом (ahem Stream) позволяет мне создавать и внедрять действительно надежные системы. Резервное копирование - облом, особенно Joliet должен был быть разработан для обработки этих AltDS, но я могу жить с ним.

Просто мой 2c (ну, может быть, 3c ...).

+2

Если Thumb Drive NTFS Formatted, AltDS идет с ним, но вся информация в этом должна быть зашифрована в любом случае. Но ваш сценарий - именно тот, который я имел в виду: Прикрепить метаданные, сохраняя при этом файл неизменным/неповрежденным. –

+7

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

+1

aka "безопасность через безвестность". Я содрогаюсь от идеи медицинских данных о конфиденциальности, которые легко получить любой, кто знает, как набирать «: space_dude_alien's_secret_stuff» в конце моих растровых изображений X-ray ... –

Смежные вопросы