BagIt - BagIt

BagIt представляет собой набор соглашений об иерархической файловой системе, предназначенный для поддержки дискового хранения и сетевой передачи произвольного цифрового контента. "Пакет" состоит из "полезной нагрузки" (произвольного содержимого) и "тегов", которые метаданные файлы, предназначенные для документирования хранения и передачи сумки. Требуемый файл тегов содержит манифест, в котором перечислены все файлы в полезной нагрузке вместе с соответствующими им. контрольная сумма. Название, BagIt, вдохновлен методом "вложить и сдать",[1] иногда называется «упаковать и пометить».

Пакеты идеально подходят для цифрового контента, который обычно хранится в виде коллекции файлов. Они также хорошо подходят для экспорта в архивных целях контента, который обычно хранится в структурах базы данных, которые принимающие стороны вряд ли поддержат. Опираясь на кроссплатформенность (Windows и Unix ) соглашения об именах файловых систем, полезная нагрузка пакета может включать любое количество каталоги и подкаталоги (папки и подпапки). Пакет может указывать содержимое полезной нагрузки косвенно через файл "fetch.txt", в котором перечислены URL для контента, который можно получить по сети, чтобы заполнить корзину; просто распараллеливание (например, запуск 10 экземпляров Wget ) может использовать эту функцию для очень быстрой передачи больших сумок. Преимущества сумок:

  • Широкое распространение в электронных библиотеках (например, Библиотека Конгресса ).
  • Легко реализовать с помощью обычных инструментов файловой системы.
  • Контент, созданный в виде файлов, нужно только скопировать в каталог полезной нагрузки.
  • В сравнении с XML упаковка, контент не нужно кодировать (например, Base64 ), что экономит время и место для хранения.
  • Полученный контент готов к использованию в знакомом дереве файловой системы.
  • Легко реализовать быструю передачу данных по сети за счет параллельного запуска обычных инструментов передачи.

Технические характеристики

Сумка В настоящее время определяется в RFC 8493.[2] Он определяет простое соглашение об именах файлов, используемое цифровое курирование сообщество для упаковки произвольного цифрового контента, чтобы его можно было надежно транспортировать через оба физических носителя (привод жесткого диска, CD-ROM, DVD ) и сетевые переводы (FTP, HTTP, rsync, так далее.). Сумка также используется для управления цифровое сохранение контента с течением времени. Обсуждение спецификации и ее будущих направлений происходит на Список обсуждений Digital Curation.

Спецификация BagIt построена вокруг понятия «сумка». Сумка называется каталог файловой системы который минимально содержит:

  • каталог «данных», который включает полезную нагрузку или файлы данных, содержащие сохраняемый цифровой контент. Файлы также можно помещать в подкаталоги, но пустые каталоги не поддерживаются.
  • по крайней мере, один файл манифеста, в котором перечислены имена файлов, присутствующие в каталоге «данных», а также их контрольные суммы. Особый алгоритм контрольной суммы включен как часть имени файла манифеста. Например, файл манифеста с MD5 контрольная сумма называется «manifest-md5.txt»
  • файл «bagit.txt», который идентифицирует каталог как мешок, версию спецификации BagIt, которой он придерживается, и кодировка символов используется для файлов тегов

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

myfirstbag / | - данные |  - 27613-ч |  - изображения |  - q172.png |  - q172.txt | - manifest-md5.txt | 49afbd86a1ca9f34b677a3f09655eae9 data / 27613-h / images / q172.png | 408ad21d50cef31da4df6d9ed81b01a7 data / 27613-h / images / q172.txt  - bagit.txt Версия BagIt: 0.97 Кодировка символов файла тегов: UTF-8

В этом примере полезная нагрузка состоит из Переносимая сетевая графика файл изображения и Оптическое распознавание символов текстовый файл. В целом идентификация и определение форматы файлов выходит за рамки спецификации BagIt; Атрибуты файла также выходят за рамки.

Спецификация допускает несколько дополнительных файлов тегов (в дополнение к манифесту). Их кодировка символов должна быть указана в «bagit.txt», который сам всегда должен быть закодирован в UTF-8. В спецификации определены следующие необязательные файлы тегов:

  • файл «bag-info.txt», в котором подробно описаны метаданные для пакета, с использованием пар ключ / значение, разделенных двоеточиями (аналогично Заголовки HTTP )
  • файл манифеста тегов, в котором перечислены файлы тегов и связанные с ними контрольные суммы (например, «tagmanifest-md5.txt»)
  • «fetch.txt», в котором перечислены URL-адреса, из которых файлы полезной нагрузки могут быть извлечены дополнительно или для замены файлов полезной нагрузки в каталоге «данных»

До версии 15 черновик также описывал, как сериализовать сумку в архивный файл, Такие как ZIP или же ТАР. Начиная с версии 15, сериализация больше не является частью спецификаций, но не по техническим причинам, а только из-за объема и направленности спецификации.

История

Спецификация BagIt возникла в результате сотрудничества между Библиотека Конгресса и Калифорнийская цифровая библиотека при передаче цифрового контента, созданного в рамках Национальная программа по инфраструктуре и сохранению цифровой информации. Истоки идеи восходят к работе, выполненной в Университет Цукуба по модели «вложить и депонировать» для взаимного депонирования архивных ресурсов для обеспечения долгосрочного цифровое сохранение.[3] Практика использования манифестов и контрольных сумм - довольно распространенная практика, о чем свидетельствует их использование в ZIP (формат файла), то Deb (формат файла), а также на публичных FTP-сайтах.

В 2007 г. Калифорнийская цифровая библиотека необходимо для передачи нескольких терабайт контента (в основном Веб-архивирование данные) в Библиотека Конгресса. Спецификация BagIt позволяла упаковывать контент в «пакеты» с метаданными пакета и манифестом с подробными контрольными суммами файлов, которые позже проверялись при получении пакетов. Спецификация была написана как IETF проект Джон Кунце в декабре 2008 года, где он претерпел несколько изменений, прежде чем был выпущен как RFC.[2] В 2009 г. Библиотека Конгресса выпустил видео, в котором описывается спецификация и связанные с ней варианты использования.[4][5] В 2018 году версия 1.0 была опубликована как RFC инженерной группой Интернета.

Смотрите также

Рекомендации

  1. ^ «Модель сотрудничества между архивными системами для повышения надежности хранения с помощью метода хранения и хранения» (PDF). 2005. Архивировано с оригинал (PDF) на 2016-03-05. Получено 2015-05-07.
  2. ^ а б "Формат упаковки файлов BagIt (версия 1.0)". Получено 29 октября 2018.
  3. ^ Табата, Коичи. «Модель сотрудничества между архивными системами для повышения надежности хранения с помощью метода хранения и хранения» (PDF). Архивировано из оригинал (PDF) 26 июля 2011 г.. Получено 12 октября 2010.
  4. ^ BagIt: передача цифрового контента для сохранения. Библиотека Конгресса. 2009 г.. Получено 12 октября 2010.
  5. ^ «BagIt: Передача цифрового контента для сохранения (стенограмма)» (PDF). Библиотека Конгресса. 2009 г. В архиве (PDF) из оригинала 10 октября 2010 г.. Получено 12 октября 2010.

внешняя ссылка