Wo werden die „Woher“-Metadaten gespeichert, wenn sie über Chrome heruntergeladen werden?

Ich führe Mavericks mit Chrome aus, und wenn ich ein Bild/eine Datei herunterlade, wird das „Woher“ gespeichert, wenn es über Get Info angezeigt wird. Dies passiert auch in Safari.

Soweit ich weiß, gibt es einen separaten Download-Verlauf, der mit den Tricks im folgenden Artikel angezeigt und gelöscht werden kann: http://www.cultofmac.com/179873/list-your-macs-entire-download-history-at -once-os-x-tips/ Diese werden verwendet, wenn Anwendungen zum ersten Mal geöffnet werden, um dem Benutzer zu zeigen, woher sie kommen.

Ich habe dies jedoch gelöscht und bestätigt, dass es leer ist, aber es wird immer noch im "Woher" angezeigt. Ich habe einige weitere Tests durchgeführt und das Bild hochgeladen, um die EXIF- und Metadaten anzuzeigen, aber es scheint überhaupt nicht in den Metadaten der Datei gespeichert zu sein. Wo könnte es also gespeichert werden?

Weiß jemand, wie diese "Woher"-Metadaten gespeichert werden und wo sie gespeichert werden. Bleibt es bei der Datei, wenn Sie die Datei auf das USB-Laufwerk legen und auf einem anderen Computer öffnen?

Ich mache mir nicht so viele Sorgen darüber, es zu entfernen, aber ich kann einfach nicht sehen, woher es kommt?

Haben Sie auch Lust auf eine programmatische Antwort, die zeigt, wie Sie diese Informationen für eine Datei abrufen können? Ich sehe, Sie haben die Antwort bestätigt, die es auf "Shell-Ebene" erklärt ...

Antworten (2)

Es wird in einem erweiterten Attribut in der Datei gespeichert. Genauer gesagt das com.apple.metadata:kMDItemWhereFromsAttribut. Es kann bei der Datei bleiben, wenn Sie sie auf verschiedene Computer verschieben, aber es hängt vom Dateisystem oder Dateifreigabeprotokoll ab, das Sie verwenden. Wenn Sie es auf einen anderen Mac auf einer HFS+-Festplatte verschieben, wird es wahrscheinlich beibehalten, aber nicht unbedingt, wenn Sie über das Netzwerk übertragen, und höchstwahrscheinlich nicht mit einer externen Festplatte mit einem Nicht-HFS+-Dateisystem.

Sie können eine Datei überprüfen, indem Sie sie xattr -lp com.apple.metadata:kMDItemWhereFroms myfileim Terminal ausführen, oder sie mit entfernen xattr -d com.apple.metadata:kMDItemWhereFroms my file. ls -l@Flag ist auch nützlich; es listet die Namen von xattrs zusammen mit den üblichen ls-Informationen auf.

Wenn Sie es aus mehreren Dateien entfernen möchten, sehen Sie sich diese Frage an: Wie entferne ich xattr com.apple.quarantine aus allen .webarchive-Dateien mit diesem erweiterten Attribut?

Das ist eine sehr informative Antwort, danke. Würde ich richtig sagen, dass die Datei die Dateidaten enthält, und dann gibt es eine versteckte Shell-Datei, der tatsächlich das xattr hinzugefügt wurde?
Nah, aber nicht genau. Es ist eher mit Metadaten verwandt. So wie eine Datei Inhalte hat, die die eigentlichen Daten sind, aber auch einen Namen, ein Erstellungsdatum usw., kann sie mit erweiterten Attributen versehen werden.
@robmathers: Verdammt, du bist mir zuvorgekommen. Außerdem habe ich die Option -l von xattr vergessen. Haben Sie eine positive Stimme.
absolut keine "versteckte Shell-Datei" Metadatenspeicherung, Indizierung, Suche und Abruf sind ein großes Thema, das nicht sehr einfach zu erfassen oder zu verstehen ist. Denken Sie nur daran, dass die Spotlight-Funktion auf diese Metadaten angewiesen ist (und sie sammelt) und dass es spezielle Komponenten gibt, die Sie für Ihre App entwickeln können, die Ihre eigenen benutzerdefinierten Metadaten für Ihre benutzerdefinierten Dokumentdateien (dynamisch vom Betriebssystem aufgerufen) zurückgeben, und es gibt die eigentliche Datei- Vom System unterstützte Metadatenattribute und mehr.

Heruntergeladenen Dateien werden erweiterte Attributecom.apple.quarantine zugewiesen, wie zum Beispiel ausführbare Dateien in Quarantäne zu stellen und com.apple.metadata:kMDItemWhereFromsfür die „Woher“-Daten. Das Vorhandensein dieser Attribute kann im Terminal über angezeigt werden ls -l@ /path/to/downloaded/file.

Um nun die tatsächlichen Daten zu erhalten, die in diesem kMDItemWhereFroms gespeichert sind, habe ich eine Lösung gefunden, die auf dieser Antwort basiert (die auch etwas mehr über die Konvertierungsmethode erklärt):

xattr -p com.apple.metadata:kMDItemWhereFroms /path/to/downloaded/file | sed -e 's/0D//g' -e 's/.*\(5F 10\)...//' -e 's/00.*//'| xxd -r -p | sed -e 's@ (.*@@g'

Dadurch wird die URL zurückgegeben. Bitte beachten Sie, dass es im Moment in einer relativ schwer lesbaren Form ist, da mein Befehlszeilen-Fu mich zu versagen scheint. Ich werde die Antwort aktualisieren, sobald ich das Richtige seddafür gefunden habe.

Von den ersten paar Bytes, "bplist", habe ich vermutet, dass es sich um eine binäre plist handelt, also hier ist, wie man sie mit Apples Tools zum Lesen dieser dekodiert: xattr -p com.apple.metadata:kMDItemWhereFroms "$file" | xxd -r -p | plutil -convert xml1 -o - -. Wenn Sie die URL(s) (die meisten Dateien scheinen zwei zu haben) selbst herausbekommen möchten, wäre an dieser Stelle das Richtige, entweder ein allgemeines XML-Tool (wie ) oder ein plist-spezifisches Tool (can xpath' ich helfe dir da nicht). (Getestet am 10.8.5.)
@AaronDavies du hast Recht! Leider scheinen die Strings im XML nicht in einer bestimmten Reihenfolge zu sein. Es ist schön zu sehen, dass dies auch bei Dingen wie Mail-Anhängen funktioniert.