Si vous téléchargez un fichier depuis l'internet à l'aide de Safari, certains attributs étendus sont ajoutés au fichier téléchargé, parmi lesquels com.apple.metadata:kMDItemWhereFroms
qui contient l'URL originale du téléchargement. Dans Finder > Get Info la valeur de cette clé sera affichée sous Où à partir de : .
/bin/ls -alh
indique la présence d'attributs étendus avec un @
dans la colonne mode et xattr -l filename.zip
énumère tous les attributs.
Selon la xattr
pour afficher la valeur d'un attribut que l'on peut utiliser :
xattr -p com.apple.metadata:kMDItemWhereFroms filename.zip
# OUTPUT
# com.apple.metadata:kMDItemWhereFroms: bplist00_=https://example.com/filename.zip
Ainsi, même si le contenu est visible, la valeur est dans un format binaire avec un en-tête de bplist00_
.
J'ai essayé de l'analyser de la manière suivante :
xattr -p com.apple.metadata:kMDItemWhereFroms filename.zip > url.plist
# checking the file format:
file url.plist
# OUTPUT:
# url.plist: Apple binary property list
# assuming this should work:
plutil -convert xml1 url.plist
# OUTPUT:
# url.plist: Property List error: Unexpected character b at line 1 / JSON error:
# JSON text did not start with array or object and option to allow
# fragments not set. around line 1, column 0.
Essayer d'analyser le fichier avec ootb de Python plistlib
provoque également une erreur :
import plistlib
with open('url.plist', 'rb') as fi:
plist = plistlib.load(fi)
# OUTPUT:
# plistlib.InvalidFileException: Invalid file
D'après la sortie, il semble qu'il ne s'agisse pas d'un format plist binaire normal, même si file url.plist
affirme qu'il s'agit d'un Apple binary property list
'. Des indications sur le format et sur la manière de l'analyser pour obtenir une valeur en texte brut ?