2010-01-27 20 views
1

Je suis en train de sauvegarder un système de fichiers et je dois m'assurer que les métadonnées sont conservées (le propriétaire du fichier et l'heure de création).Archivage (tar et compression) avec métadonnées (ID utilisateur et ctime) en Python

Le module tarfile en Python est vraiment utile, et je l'utilise intensivement dans ma solution. Cependant, je ne peux pas créer le fichier tar avec des fichiers conservant leurs métadonnées (vraisemblablement parce que copy et copy2 ne peuvent pas le faire).

Comment aborderiez-vous ce problème à partir de Python?

EDIT:

Juste pour faire comprendre à la communauté: le module tarfile en Python ne fournissent des moyens pour stocker les métadonnées via l'objet Tarinfo. Essentiellement, un objet Tarinfo est le membre d'un objet Tar, et il contient toutes les informations dont vous pourriez avoir besoin. S'il vous plaît se référer à la poste acceptée.

Merci!

Répondre

2

"Vraisemblablement"? Vous voulez dire que vous ne savez pas? Avez-vous essayé? Cela dit, pour autant que je sache, les fichiers tar ne conservent pas le temps, et il y aurait peu de sens, car le temps devrait être réinitialisé lorsque vous déballez. Cependant, mtime est conservé, et le module tarfile gère mtime.

Le module tarfile de python utilise des objets TarInfo lorsque vous ajoutez des fichiers. Comme si:

TarFile.addfile(tarinfo, fileobj=None) 

L'objet TarInfo contient les informations du fichier:

TarInfo.mtime 
Time of last modification. 

TarInfo.uid 
User ID of the user who originally stored this member. 

TarInfo.gid 
Group ID of the user who originally stored this member. 

et charge d'autres métadonnées. Voir http://docs.python.org/library/tarfile.html

+0

S'il vous plaît aller de l'avant et downvote moi ... vous avez raison ... les champs Tarinfo contiennent tout ce dont j'ai besoin. Désolé pour le 'Lapsus Stupidus'. – Escualo