Mac OS X จะบันทึกรายละเอียดเกี่ยวกับ URL ที่ไฟล์ถูกดาวน์โหลดได้อย่างไร?


8

WRT หัวข้อนี้ฉันควรทำอย่างไรเกี่ยวกับ com.apple.quarantine ฉันต้องการทราบว่า OS X สามารถเรียนรู้และบันทึกข้อมูลเหล่านั้นในฟิลด์ @ ได้อย่างไร ฉันไม่ได้มองหาวิธีปิดการใช้งานคุณลักษณะนี้ แต่สำหรับรหัส (หรือรหัสเทียมความคิดอะไรก็ตาม) เกี่ยวกับการใช้สิ่งนี้ ขอบคุณล่วงหน้า.

คำตอบ:


6

เบราว์เซอร์สามารถจัดเก็บ URL ต้นทาง (และผู้อ้างอิง) ของไฟล์ที่ดาวน์โหลดในแอตทริบิวต์com.apple.metadata:kMDItemWhereFromsเพิ่มเติม

ครั้งแรกที่แอปเปิ้ลเพิ่มรายการนี้ลง Safari สำหรับ Mac OS X 10.4 แล้วมันถูกบันทึกอยู่ใน Chrome / โครเมี่ยม[ฉบับที่ 22289]และมีการร้องขอการเพิ่มประสิทธิภาพที่โดดเด่นเพื่อเพิ่มลงใน Firefox [Bug 337,051]

ในฐานะที่เป็นสำหรับรหัสที่เกิดขึ้นจริงในการดำเนินการนี้ตรวจสอบออกแพทช์โครเมี่ยม


ประวัติดี :-) อย่างไรก็ตามเมื่อใช้ Safari ฉันไม่เห็นผู้อ้างอิง (หรืออย่างน้อยก็ไม่ใช่ในการดาวน์โหลดใหม่ฉันพยายามดูว่าฉันพลาดอะไรไปหรือเปล่า) บางทีสิ่งต่าง ๆ อาจเกิดขึ้นเมื่อคลิกขวาและดาวน์โหลดหรือเมื่อการดาวน์โหลดเริ่มต้นโดยอัตโนมัติ (ตัวอย่างเช่นเบราว์เซอร์บางตัวไม่ส่งผู้อ้างอิงเมื่อเปิดลิงก์ในหน้าต่างใหม่เช่นกัน)
Arjan

อ่าคุณพูดถูกmdlsแสดงว่าเป็นการดาวน์โหลดที่เริ่มต้นโดยอัตโนมัติ และ Finder's 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; ซาฟารี; 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: // บาง URL"
)

คุณสามารถตั้งค่าเหล่านั้น (หรือคุณลักษณะใด ๆ ที่คุณต้องการ) ด้วยตัวเอง:

xattr -w ชื่อ - ค่า mydownload.gz

การทำงานต่อไปนี้ก็เช่นกันแม้ว่าจะมีผลลัพธ์ที่แตกต่างกันเมื่อเรียกใช้คำสั่งข้างต้นอีกครั้ง:

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

และสำหรับcom.apple.quarantineแอตทริบิวต์ตามที่เข้าใจ :

โดยทั่วไปแล้วข้อมูลการกักกันประกอบด้วยชุดของค่าที่คั่นด้วยเครื่องหมายอัฒภาค 4 ชุด (ชุดเลขฐานสิบของจุดประสงค์ที่ไม่รู้จัก - โดยทั่วไปคือ 0000, รหัสทึบแสง 8 ตัวอักษร 8 ตัว, ชื่อของแอปพลิเคชันที่สร้างไฟล์กักกัน (Uniform Type Identifier) ​​นำหน้าด้วยสัญลักษณ์ไปป์)

ตัวอย่างเช่นสำหรับไฟล์ที่แตกต่างกันสองไฟล์ที่ดาวน์โหลดโดยใช้ Mozilla FireFox จะมีลักษณะดังนี้:

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

การใช้การดำเนินการกับโฟลเดอร์ของ Automator คุณสามารถเรียกใช้คำสั่งดังกล่าวสำหรับไฟล์ใหม่ในโฟลเดอร์เฉพาะหากนั่นคือสิ่งที่คุณต้องการ


4

ข้อมูลนั้นจะถูกจัดเก็บในสิ่งที่เรียกว่า "คุณสมบัติเพิ่มเติม" จอห์น Siracusa มีบทความดีถกคุณสมบัติการขยายเมื่อพวกเขาถูกเปิดตัวครั้งแรกใน OS X 10.4: http://arstechnica.com/apple/reviews/2005/04/macosx-10-4.ars/7

ดูเหมือนว่าจะไม่มี man page สำหรับเครื่องมือบรรทัดคำสั่ง 'xattr' แต่ 'xattr -h' ควรแสดงวิธีใช้พื้นฐาน

POSIX / BSD-level API มีอยู่ใน /usr/include/sys/xattr.h ซึ่งกำหนดฟังก์ชั่น C เช่น getxattr (), setxattr (), removexattr (), listxattr (), listxattr () และลูกพี่ลูกน้องตามไฟล์ (คำสั่งเหล่านี้ซึ่งแตกต่างจาก 'xattr (1)' มี man pages)


3

มันถูกตั้งค่าโดยแอปพลิเคชันที่ดาวน์โหลดไฟล์ ไม่มีการตรวจจับการดาวน์โหลดเวทย์มนตร์เพียงคุณสมบัติที่ตั้งอยู่บนไฟล์ที่ดาวน์โหลดโดยแอปพลิเคชันดาวน์โหลด

ฉันเพิ่งดาวน์โหลดไฟล์ zip โดยใช้wgetGoogle Chrome, Firefox และ Safari และตามที่คาดไว้การwgetดาวน์โหลดนั้นไม่มีคุณสมบัติเพิ่มเติมการดาวน์โหลดเบราว์เซอร์มีตามที่พวกเขารับรู้ถึงคุณลักษณะนั้น ที่น่าสนใจคือชุดดาวน์โหลด Firefox กักกันไว้ แต่ลืมที่จะตั้งค่าcom.apple.metadata:kMDItemWhereFromsข้อมูลที่ไฟล์ที่ดาวน์โหลดมานั้นตั้งอยู่ที่เดิม (URL) Safari และ Chrome ตั้งค่าทั้งสองwgetอย่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.