Archivage (tar et compress) avec des métadonnées (id utilisateur et ctime) dans le python
Question
Je suis en train de sauvegarder un système de fichiers et je dois vous assurer que les métadonnées sont conservées (le propriétaire du fichier et le temps de création).
Le module tarfile
en Python est vraiment utile, et je l'utilise largement dans ma solution. Cependant, je ne peux pas créer le fichier tar avec les fichiers conservant leurs métadonnées (probablement parce que copy
et copy2
ne peuvent pas le faire).
Comment aborderez-vous ce problème au sein de Python?
EDIT:
Juste pour faire comprendre à la communauté: le module tarfile
en Python fait fournir 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 a toutes les informations dont vous pourriez avoir besoin. S'il vous plaît se référer au poste accepté.
Merci!
La solution
"On peut supposer que"? Vous voulez dire que vous ne connaissez pas? Avez-vous essayé ? Cela dit, pour autant que je sache, tarfiles ne conserve pas ctime, et il y aurait peu de point, comme ctime doit être remis à zéro lorsque vous déballez. mtime est conservée, bien que, et les poignées de module tarfile mtime.
Le module tarfile python utilise des objets TarInfo lorsque vous ajoutez des fichiers. Comme ceci:
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 les charges d'autres métadonnées. Voir http://docs.python.org/library/tarfile.html