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

Raf*_*zio 8 permissions macos

WRT 这个话题我应该怎么做 com.apple.quarantine?,我想知道OS X如何学习并将这些信息保存在@字段中。我不是在寻找禁用此功能的方法,而是寻找有关此功能实现的代码(或伪代码、想法等)。先感谢您。

Arj*_*jan 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
Run Code Online (Sandbox Code Playgroud)

使用 Automator 的文件夹操作,您可以为特定文件夹中的新文件运行此类命令,如果这是您所追求的。


mar*_*k4o 6

正如丹尼尔提到的,浏览器可以在扩展属性中存储下载文件的源 URL(以及引用者)com.apple.metadata:kMDItemWhereFroms

首先,Apple 将此添加到 Mac OS X 10.4 的 Safari,然后添加到 Chrome/Chromium [Issue 22289],并且有一个突出的增强请求将其添加到 Firefox [Bug 337051]

至于实现这一点的实际代码,请查看Chromium 补丁