Mac OS Xでは、ファイルのダウンロード元のURLに関する詳細をどのように保存できますか?


8

このトピックをWRTするcom.apple.quarantineについてどうすればよいですか?、私はOS Xが@フィールドにそれらの情報をどのように学習して保存できるか知りたいです。私はこの機能を無効にする方法を探しているのではなく、このことの実装に関するコード(または疑似コード、アイデアなど)を探しています。前もって感謝します。

回答:


6

ダニエルが述べたように、ブラウザーはダウンロードされたファイルのソースURL(およびリファラー)を拡張属性に保存できますcom.apple.metadata:kMDItemWhereFroms

最初にAppleがMac OS X 10.4のSafariにこれを追加し、次にChrome / Chromiumに追加しました[Issue 22289]。Firefoxに追加するための優れた拡張リクエストがあります[Bug 337051]

これを実装する実際のコードについては、Chromiumパッチを確認してください。


素敵な歴史:-)しかし、Safariを使用しているとき、リファラーは表示されません(または、少なくとも新しいダウンロードでは、何かを見逃したかどうかを確認しようとしませんでした)。右クリックしてダウンロードするときと、ダウンロードが自動的に開始するときでは、状況が異なる場合がありますか?(たとえば、一部のブラウザーは、新しいウィンドウでリンクを開いたときにリファラーを送信しません。)
Arjan

ああ、そうです、mdls自動的に開始するダウンロードには表示されます。そしてFinderのGet Infoはそれをコンマ区切りのリストとして示しており、私はそれに気づかなかった!
Arjan

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つの値のセット(不明な目的の10進数字のセット-通常は0000、8文字の不透明ID、隔離ファイルを作成したアプリケーションの名前、およびアプリケーションのUTI)で構成されます(Uniform Type Identifier)パイプ記号が前に付けられます)

たとえば、Mozilla FireFoxを使用してダウンロードした2つの異なるファイルの場合、これは次のようになります。

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」で基本的なヘルプが表示されます。

POSIX / BSDレベルのAPIは、/ usr / include / sys / xattr.hにあり、getxattr()、setxattr()、removexattr()、listxattr()、およびそれらのFILEベースのいとこなどのC関数を定義しています。(これらのコマンドには、「xattr(1)」とは異なり、manページがあります)。


3

ファイルをダウンロードするアプリケーションによって設定されます。マジックダウンロードの検出は行われず、ダウンロードするアプリケーションによってダウンロードされたファイルに属性が設定されるだけです。

wgetGoogle Chrome、Firefox、Safari を使用してzipファイルをwgetダウンロードしましたが、期待どおり、ダウンロードには拡張属性がありません。ブラウザのダウンロードにはその機能が認識されているためです。興味深いことに、Firefoxのダウンロードは隔離を設定com.apple.metadata:kMDItemWhereFromsしましたが、ダウンロードしたファイルが元々あった場所の情報(そのURL)を設定するのを忘れていました。SafariとChromeはwgetどちらも設定しましたが、どちらも設定していません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.