Mac OS X如何保存有关从中下载文件的URL的详细信息?


Answers:


6

正如Daniel所提到的,浏览器可以将下载文件的源URL(以及引荐来源网址)存储在extended属性中com.apple.metadata:kMDItemWhereFroms

首先,Apple将其添加到Mac OS X 10.4的Safari中,然后将其添加到Chrome / Chromium [问题22289]中,并且存在将其添加到Firefox的显着增强要求[错误337051]

至于实现此功能的实际代码,请查看Chromium补丁


很好的历史:-)但是,在使用Safari时,我看不到引荐来源网址(或者至少在新下载的内容中没有,我试图查看是否错过了某些内容)。右键单击并下载时,或者自动开始下载时,情况可能有所不同?(例如,某些浏览器在新窗口中打开链接时也不会发送引荐来源网址。)
Arjan 2010年

嗯,您是对的,mdls确实显示了自动开始的下载。Finder的“获取信息”将其显示为以逗号分隔的列表,但我没有注意到!
Arjan 2010年

6

下载任何文件后,运行xattr file将向您显示浏览器在扩展属性中存储的内容:

xattr mydownload.gz
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine

接下来,更多详细信息:

xattr -p com.apple.quarantine mydownload.gz 
0000; 4cee9d4b; Safari; 24064D6B-9854-46BC-AF73-5DE5F8042D0B | com.apple.Safari

xattr -p com.apple.metadata:kMDItemWhereFroms mydownload.gz 
62 70 6C 69 73 74 30 30 A1 01 5F 10 24 68 74 74
70 3A 2F 2F 73 75 [依此类推]

...或以可读格式:

mdls -name kMDItemWhereFroms mydownload.gz
kMDItemWhereFroms =(
    “ http:// some-url”
)

您也可以自己设置这些(或所需的任何属性):

xattr -w some-name some-value mydownload.gz

下面的作品也是如此,即使是有再次运行上面的命令时,不同的结果:

xattr -w com.apple.metadata:kMDItemWhereFroms http://example.com mydownload.gz

而对于com.apple.quarantine属性,据了解

通常,隔离数据由一组4个以分号分隔的值(一组目的不明的十进制数字-通常为0000、8个字符的不透明ID,创建隔离文件的应用程序的名称以及应用程序的UTI)组成(统一类型标识符)以管道符号为前缀)

例如,对于使用Mozilla FireFox下载的两个不同文件,它看起来像:

com.apple.quarantine: 0000;4b392bb2;Firefox;|org.mozilla.firefox
com.apple.quarantine: 0000;4b38d820;Firefox;|org.mozilla.firefox

使用Automator的“文件夹操作”,您可以在特定文件夹中为新文件运行此类命令(如果这样做的话)。


4

该信息存储在所谓的“扩展属性”中。John Siracusa在OS X 10.4中首次发表有关扩展属性的文章非常出色:http : //arstechnica.com/apple/reviews/2005/04/macosx-10-4.ars/7

似乎不再有'xattr'命令行工具的手册页,但是'xattr -h'应该显示基本帮助。

/usr/include/sys/xattr.h中提供了POSIX / BSD级的API,该API定义了C函数,例如getxattr(),setxattr(),removexattr(),listxattr()及其基于文件的表兄弟。(这些命令与“ xattr(1)”不同,确实具有手册页)。


3

由应用程序下载文件设置。没有魔术下载检测,只有下载应用程序在下载文件上设置的属性。

我刚刚使用wget,Google Chrome,Firefox和Safari 下载了一个zip文件,并且正如预期的那样,wget下载没有扩展的属性,而浏览器下载却具有扩展的属性,因为他们知道该功能。有趣的是,Firefox下载设置了隔离区,但忘记设置com.apple.metadata:kMDItemWhereFroms了下载文件最初所在的信息(其URL)。Safari和Chrome都wget没有设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.