요약

  • PDPArchive 제03판은 POSIX pax를 담는 형식으로 정하고, gzip·Zstandard 압축과 하나의 논리적 내보내기를 여러 파일로 나누는 규칙을 더했다.
  • 가져오는 쪽은 파일을 쓰기 전에 절대 경로, .. 경로와 특수 항목을 거부해야 한다. 묶음에 실린 소유자, 모드 비트, 확장 속성, ACL은 적용하지 않고 자기 기본값으로 새 파일을 만들어야 한다.

포장 상자에 새 집의 열쇠를 넣을 수는 없다

IETF mailmaint 작업반은 개인 메일, 주소록, 일정 등을 옮길 수 있는 공통 형식을 다듬고 있다. 앞선 제02판은 상자 안의 데이터 구조에 무게를 두었다. 이번 판은 상자 자체를 POSIX pax로 정한다. tar 계열인 pax는 확장된 파일 이름과 크기 정보를 담을 수 있다. 내보내는 쪽은 일반 파일과 디렉터리만 포함해야 한다. Datatracker에는 여전히 작업반 인터넷 초안으로 올라 있다. 실제 서비스 간 이전을 측정한 발표는 아니다.

파일 이름은 받는 시스템에서 저장 위치가 된다. 초안은 UTF-8 상대 경로, 한 파일 안의 고유한 이름, .와 ..이 없는 경로 조각을 요구한다. 들여오는 쪽은 디스크에 쓰기 전 절대 경로, 상위 디렉터리로 가는 경로, 일반 파일이나 디렉터리가 아닌 항목을 걸러야 한다. 더 눈여겨볼 조항은 권한이다. 옛 시스템이 보낸 소유자나 파일 모드, 확장 속성, 접근 제어 목록을 새 파일에 씌울 수 없다. 새 서비스의 기본 설정이 적용된다. 데이터 소유자의 이사 권리는 옛 공급자의 관리 권한을 연장하지 않는다.

이름 충돌도 실제 이전에서 중요하다. Inbox와 INBOX는 압축 묶음 안에서는 다르지만 대소문자를 구분하지 않는 파일 시스템에서는 같은 경로가 될 수 있다. Unicode 정규화도 다른 표기를 하나로 만든다. 초안은 내보내는 쪽에 이런 충돌을 피하도록 요구하고, 들여오는 쪽에는 중복 이름을 조용히 덮어쓰는 대신 거부하도록 권한다. 성공 표시 뒤에 폴더 하나가 사라지면 이용자의 이사는 끝난 것이 아니다.

큰 폴더는 여러 묶음에 나누어 실을 수 있다. 각 부분은 혼자서도 읽혀야 하고, archive.json을 각각 갖는다. 전체 메타데이터는 part와 final을 빼고 같아야 한다. 같은 폴더의 조각들은 UID와 다른 정보를 일치시키고 삭제 목록인 removed도 각 부분에 반복한다. 가져오는 쪽은 두 조각을 하나로 합쳐야 한다. 상자 이름이 비슷하다는 감상보다 UID라는 기록이 정확한 연결 근거다.

묶음은 압축하지 않거나 gzip, Zstandard를 쓸 수 있다. 수입자는 무압축과 gzip을 받아야 하고 Zstandard도 받기를 권장받는다. 초안은 압축 해제 후 총 크기, 항목 수와 항목별 크기를 살피라고 하지만 단일 상한 숫자는 정하지 않는다. 업로드된 파일의 역할·공유 정보는 변조될 수 있으므로, 받는 쪽은 그 주장을 신뢰할지 따로 판단해야 한다.

작업반의 최종 결정과 서로 다른 구현 사이의 반입 시험이 다음 판단 자료다. 이번 개정은 그 시험에서 파일이 어디에 쓰이고 누구의 권한으로 남는지를 묻게 한다.

출처: 제03판; 제02판; IETF 상태; RFC 1952; RFC 8878.