Кратко
- Редакция 03 проекта рабочей группы mailmaint от 28 октября выбирает POSIX pax для личного архива. Один логический экспорт можно разбить на несколько самостоятельно читаемых файлов; одна папка также может занимать несколько частей.
- Импортёр обязан объединять части папки по общему
uidи согласованным метаданным. Он обязан отклонять опасные пути и особые типы записей и не вправе переносить на локальные файлы владельца, биты режима, расширенные атрибуты или ACL из пакета.
Два тома не должны создавать два почтовых ящика
Большой почтовый ящик удобно выдавать частями: если загрузка сорвётся, не придётся повторять весь процесс. Но в обоих файлах может встретиться папка «Входящие». Программа, которая ориентируется на видимое название и на границу файла, создаст два ящика. Программа, которая считает первый том полным, потеряет содержимое второго. Кнопка «импорт завершён» при этом может загореться в обоих случаях. Пользователь сохранил байты, но лишился непрерывности собственной переписки.
Проект задаёт правило соединения. Каждая часть содержит свой archive.json, значения part идут по порядку, а final обозначает завершение. Если папка разделена, её folder.json в каждой части перечисляет только местные элементы, однако прочие поля должны совпадать. Список удалённых элементов дублируется. Общий uid показывает, что это одна папка, и импортёр должен её объединить. Имя папки полезно человеку; для восстановленной идентичности его недостаточно.
В новой редакции выбран формат pax — расширение tar, поддерживающее международные имена путей и дополнительные сведения о размере. Внутри допускаются обычные файлы и каталоги, но не символические ссылки, устройства и прочие специальные записи. Пути должны быть относительными, в UTF-8, без сегментов . и ... Даже разные имена внутри архива могут совпасть на диске, который не различает регистр или нормализует Unicode. Отправитель должен стараться избежать коллизий; получателю лучше отвергнуть дубликат, чем незаметно затереть файл. Эти подробности определяют, сохранится ли пользовательская структура после смены операционной среды.
Список участников не выдаёт им новые ключи
Самый важный запрет находится в правилах импорта. Прежде чем писать на диск, получатель проверяет имена, отвергает абсолютные пути, переходы к родительскому каталогу и неподходящие типы записей. Затем создаёт файлы с собственными настройками. Владелец, режим, расширенные атрибуты и списки ACL, пришедшие в архиве, не применяются. Это защита от подменённого пакета и одновременно ответ на вопрос о власти: прежний поставщик не назначает права в новой системе.
На уровне приложения бывает тоньше. Календарное событие может содержать участников, другой объект — роли или shareWith. Официальный текст предупреждает, что исходные ограничения доступа не обязательно надёжно передаются вместе с данными, а загруженные поля можно изменить. Присутствие адреса в приглашении ещё не означает, что новое приложение проверило его владельца и разрешило ему читать перенесённый календарь. Решение принимает принимающий сервис по своим правилам идентификации и доступа.
Для контактов, задач и календарных объектов в указанных форматах требуются uid и updated. Получатель ищет уже существующий объект с тем же идентификатором и, если данные достаточно похожи, не должен переписывать его лишь ради нового времени изменения. Иначе каждое повторное чтение архива производит искусственную историю изменений и дубликаты. Но понятие «достаточно похожи» оставлено реализации. Спецификация описывает одностороннюю синхронизацию; она не обещает автоматически разрешить спор между двумя меняющимися учётными записями.
Архив может быть несжатым, сжатым gzip или Zstandard. Получатель обязан принимать первые два варианта, поддержка третьего рекомендована. Сжатие делает перевозку удобнее, но небольшой файл может развернуться в слишком большой объём. Проект советует учитывать общий размер после распаковки, количество записей и их отдельные размеры. Кроме того, пакет собирает сведения о корреспондентах и приглашённых лицах, которые сами не запрашивали экспорт. Удобство перевозки увеличивает цену ошибки при выдаче и обработке данных.
В предыдущей редакции эти правила контейнера и разделения папок ещё не были закреплены. Datatracker показывает рабочий Internet-Draft, а не опубликованный RFC или подтверждённое внедрение. Порядок запроса и передачи экспортного файла оставлен за пределами документа. О работающем переходе между сервисами можно будет говорить после испытаний независимых реализаций.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





