मैक ओएस एक्स उस URL के बारे में विवरण कैसे बचा सकता है जिससे कोई फ़ाइल डाउनलोड की गई है?


8

WRT इस विषय पर मुझे com.apple.quarantine के बारे में क्या करना चाहिए? , मैं जानना चाहता हूं कि ओएस एक्स कैसे सीख सकता है और उन सूचनाओं को @ फ़ील्ड में सहेज सकता है। मैं इस सुविधा को अक्षम करने का तरीका नहीं ढूंढ रहा हूं, लेकिन इस चीज़ के कार्यान्वयन के संबंध में एक कोड (या स्यूडोकोड, विचार, जो भी हो) के लिए। पहले ही, आपका बहुत धन्यवाद।

जवाबों:


6

जैसा कि डैनियल ने उल्लेख किया है, ब्राउज़र विस्तारित विशेषता में डाउनलोड की गई फ़ाइल के स्रोत URL (और रेफरल भी) को स्टोर कर सकता है com.apple.metadata:kMDItemWhereFroms

पहले Apple ने मैक ओएस एक्स 10.4 के लिए इसे सफारी में जोड़ा, फिर इसे क्रोम / क्रोमियम [इश्यू 22289] में जोड़ा गया , और इसे फ़ायरफ़ॉक्स [बग 337051] में जोड़ने के लिए एक उत्कृष्ट संवर्द्धन अनुरोध है ।

इसे लागू करने के लिए वास्तविक कोड के लिए, क्रोमियम पैच देखें


अच्छा इतिहास :-) हालांकि, सफारी का उपयोग करते समय मैं रेफरल नहीं देखता (या कम से कम नए डाउनलोड में नहीं था कि मैंने यह देखने की कोशिश की कि क्या मैं चूक गया)। हो सकता है कि राइट-क्लिक और डाउनलोड करते समय चीजें अलग-अलग हों या जब कोई डाउनलोड अपने आप शुरू हो जाए? (उदाहरण के लिए, कुछ ब्राउज़र रेफ़रर को नई विंडो में लिंक खोलते समय नहीं भेजते हैं।)
अर्जन

आह, आप सही हैं, mdlsइसे डाउनलोड के लिए दिखाता है जो स्वचालित रूप से शुरू होता है। और फाइंडर्स गेट इंफो से पता चलता है कि अल्पविराम से अलग की गई सूची के रूप में, जिसे मैं नोटिस करने में असफल रहा!
अर्जन

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 3 ए 2 एफ 2 एफ 73 75 [और इसी तरह]

... या, पठनीय प्रारूप में:

mdls -name kMDItemWhereFroms mydownload.gz
kMDItemWhereFroms = (
    "Http: // कुछ-url"
)

आप उन (या कोई विशेषता जो आप चाहते हैं) स्वयं भी सेट कर सकते हैं:

xattr -w कुछ-नाम कुछ-मूल्य mydownload.gz

निम्नलिखित , भी काम करता है, भले ही अलग-अलग परिणाम जब ऊपर बताए गए आदेशों को फिर से चलाने है:

xattr -w com.apple.metadata: kMDItemWhereFroms http://example.com mydr.z

और com.apple.quarantineविशेषता के लिए, समझ के अनुसार :

आमतौर पर, संगरोध डेटा में 4 अर्धविराम-सीमांकित मानों का सेट होता है (अज्ञात उद्देश्य के दशमलव अंकों का एक सेट - आमतौर पर 0000, एक 8 वर्ण अपारदर्शी आईडी , उस अनुप्रयोग का नाम, जिसने संगरोध फ़ाइल बनाई और अनुप्रयोग का UTI (यूनिफ़ॉर्म टाइप आइडेंटिफ़ायर) एक पाइप प्रतीक के साथ उपसर्ग

उदाहरण के लिए, मोज़िला फ़ायरफ़ॉक्स का उपयोग करके डाउनलोड की गई दो अलग-अलग फ़ाइलों के लिए, यह इस तरह दिखता है:

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

ऑटोमेटर के फोल्डर एक्ट्स का उपयोग करके आप एक विशिष्ट फ़ोल्डर में नई फ़ाइलों के लिए इस तरह की कमांड चला सकते हैं, यदि आपके बाद ऐसा हो।


4

उस जानकारी को "विस्तारित विशेषताओं" में संग्रहीत किया जाता है। जॉन सिराकुसा के पास एक उत्कृष्ट लेख है जिसमें विस्तारित विशेषताओं पर चर्चा की गई है जब वे पहली बार ओएस एक्स 10.4: http://arstechnica.com/apple/reviews/2005/04/macosx-10-4.ars/7 में पेश किए गए थे ।

ऐसा प्रतीत होता है कि 'xattr' कमांड लाइन टूल के लिए अब कोई मैन पेज नहीं है, लेकिन 'xattr -h' को बुनियादी मदद दिखानी चाहिए।

POSIX / BSD-level API /usr/include/sys/xattr.h में उपलब्ध है जो C फ़ंक्शन को getxattr (), setxattr (), removexattr (), listxattr (), और उनके फ़ाइल-आधारित चचेरे भाई को परिभाषित करता है। (ये कमांड, 'xattr (1)' के विपरीत, मैन पेज हैं)।


3

यह फ़ाइल डाउनलोड करने वाले एप्लिकेशन द्वारा सेट किया गया है। कोई मैजिक डाउनलोड डिटेक्शन नहीं, सिर्फ डाउनलोडिंग एप्लिकेशन द्वारा डाउनलोड की गई फाइल पर सेट की गई विशेषता।

मैंने wgetGoogle क्रोम, फ़ायरफ़ॉक्स और सफारी का उपयोग करके एक ज़िप फ़ाइल डाउनलोड की है , और, जैसा कि अपेक्षित था, wgetडाउनलोड में कोई विस्तारित विशेषता नहीं है, ब्राउज़र डाउनलोड हैं, क्योंकि वे उस सुविधा के बारे में जानते हैं। दिलचस्प बात यह है कि फ़ायरफ़ॉक्स डाउनलोड सेट संगरोध है, लेकिन सेट करने के लिए भूल गया com.apple.metadata:kMDItemWhereFroms, डाउनलोड की गई फ़ाइल मूल रूप से (इसका URL) थी। सफारी और क्रोम दोनों, wgetन तो सेट ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.