मैं सोच रहा था कि कोई तरीका है जिसके द्वारा मैं पूरी फ़ाइल को डाउनलोड किए बिना .rar या .zip फ़ाइल का केवल एक हिस्सा डाउनलोड कर सकता हूं? फाइलें ए, बी, सी और डी युक्त एक ज़िप फ़ाइल है, मुझे केवल ए की आवश्यकता है। क्या मैं किसी भी तरह से डाउनलोड कर सकता हूं, केवल ए को डाउनलोड करने के लिए डाउनलोड कर सकता हूं या यदि संभव हो तो सर्वर में फ़ाइल निकालें और केवल एक प्राप्त करें?क्या एक ज़िप संग्रह (उदा। एक फ़ाइल) का सिर्फ एक हिस्सा डाउनलोड करना संभव है?
उत्तर
एक तरह से, हाँ, आप कर सकते हैं।
ZIP file format कहता है कि "केंद्रीय निर्देशिका" है। असल में, यह एक सारणी है जो संग्रहीत करती है कि संग्रह में कौन सी फाइलें हैं और उनके पास क्या ऑफसेट है।
तो, Content-Range का उपयोग करके आप अंत से फ़ाइल का हिस्सा डाउनलोड कर सकते हैं (केंद्रीय निर्देशिका ज़िप फ़ाइल में आखिरी चीज है) और इसमें केंद्रीय निर्देशिका की पहचान करने का प्रयास करें। यदि आप सफल होते हैं तो आप फ़ाइल सूची और ऑफ़सेट जानते हैं, ताकि आप आगे बढ़ सकें और उन हिस्सों को अलग से प्राप्त कर सकें और उन्हें स्वयं को डिकंप्रेस कर सकें।
यह दृष्टिकोण काफी त्रुटि-प्रवण है और काम करने की गारंटी नहीं है। लेकिन सामान्य रूप से हैकिंग है :-)
इसके लिए एक कस्टम सर्वर बनाना एक और संभावित तरीका होगा (अधिक जानकारी के लिए @pst's answer देखें)।
मुझे आश्चर्य है कि क्या कोई लाइब्रेरी है जो HTTP सामग्री रेंज अनुरोधों को किसी प्रकार की विकृत धारा IO के रूप में मैप कर सकती है ... :) (वास्तव में, यह संभव होगा [fsvo], वर्णित अनुसार, स्ट्रीम इनपुट स्वीकार करने वाली कई भाषाओं के लिए कुछ ऐसा नहीं है जिसे मैं स्पर्श करना चाहता हूं।) –
यह हैकिंग नहीं है लेकिन सही कार्य करने का तरीका है। दरअसल, HTTP यहां ज़िप स्ट्रीम तक पहुंचने का एक तरीका बन जाता है, और धाराओं के साथ काम करने वाले किसी भी ज़िप घटक को दूरस्थ स्ट्रीम से केवल एक फ़ाइल निकालने के लिए उपयोग किया जा सकता है। –
@ यूजीन मेवेस्की 'एल्डोस्कोप हां, आप शायद सही हैं, मैंने इसे इस तरह से नहीं देखा :-) –
मुझे लगता है कि सर्गेई तुलेंटसेव विचार शानदार है।
हालांकि, अगर सर्वर पर नियंत्रण है - उदा। कस्टम कोड तैनात किया जा सकता है - फिर यह एक मामूली ऑपरेशन (चीज़ों की योजना में :) अनुरोध को मैप/संभालने के लिए है, ज़िप संग्रह के प्रासंगिक भाग को निकालें, और डेटा को HTTP स्ट्रीम में वापस भेज दें।
अनुरोध दिखाई देंगे:
http://foo.bar/myfile.zip_a.jpeg
कौन सा निकालने का मतलब होगा - और वापसी - "myfile.zip" से "a.jpeg"।
(मैं जानबूझकर इतना है कि ब्राउज़रों की संभावना डाउनलोड संवाद दिखाई देने पर उसे में नाम के रूप में चुनते हैं "myfile.zip_a.jpeg" इस मूर्खतापूर्ण स्वरूप का चयन किया।)
बेशक, कैसे इस कार्यान्वित किया जाता है निर्भर करता है सर्वर/भाषा/ढांचे पर और पहले से ही मौजूदा समाधान हो सकते हैं जो समान ऑपरेशन का समर्थन करते हैं (लेकिन मुझे नहीं पता)।
हैप्पी कोडिंग।
कस्टम सर्वर के मेरे विचार का अच्छा विस्तार। धन्यवाद :-) –
@ सेर्गी टुलेंटसेव मैं आपके जैसे क्लाइंट को लिखने के लिए प्रेरित हूं :) –
आपके पास बहुत खाली समय है, हुह? :-) लेकिन हाँ, मैं भी मोहक हूं :-) –
इसके बजाय, Google डॉक्स के पाठक का उपयोग करें। गोटो इस लिंक- https://docs.google.com/viewer?url=http://file.zip और ज़िप फ़ाइल का पता बदलें। यह ज़िप और रार फ़ाइलों दोनों को खोल सकता है
क्या एक चाल है। आसान और कुशल। पैरामीटर वाले यूआरएल के साथ संग्रह के लिए, उन्हें urlencode करना न भूलें। –
अब और काम नहीं कर रहा है ... [उदाहरण] (https://docs.google.com/viewer?url=http://www.colorado.edu/conflict/peace/download/peace.zip) – boramalper
हालांकि यह समस्या को हल करने के लिए एक महत्वपूर्ण संकेत हो सकता है, एक अच्छा जवाब भी समाधान का प्रदर्शन करता है। कृपया अपना नाम दिखाने के लिए उदाहरण कोड प्रदान करने के लिए [संपादित करें]। वैकल्पिक रूप से, इसे इसके बजाय टिप्पणी के रूप में लिखने पर विचार करें। –
आप एफडीएम का उपयोग कर सकते हैं, इसका समर्थन ज़िप फ़ाइल आंशिक डाउनलोड: नि: शुल्क डाउनलोड प्रबंधक आपको ज़िप फ़ाइल के केवल आवश्यक भाग को डाउनलोड करने देता है।
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1874 9 488) – aerokite
यह एक उपकरण है, कोड या ढांचा नहीं। यह साइट प्रोग्राम खोजने के बारे में नहीं है, यह उन्हें बनाने के बारे में है। – kelin
चाल क्या सर्जियो इसे मैन्युअल रूप से कर के बिना पता चलता है करने के लिए है। यह आसान है यदि आप ज़िप फ़ाइल को HTTP-समर्थित वर्चुअल फाइल सिस्टम के माध्यम से आरोहित करते हैं तो उस पर मानक unzip कमांड का उपयोग करें। इस तरह unzip उपयोगिता के I/O कॉल का अनुवाद HTTP रेंज में किया जाता है, जिसका अर्थ केवल उस ज़िप के भाग जिन्हें आप नेटवर्क पर स्थानांतरित करना चाहते हैं।
HTTPFS का उपयोग करके लिनक्स के लिए यहां एक उदाहरण है, जो बहुत हल्का वर्चुअल फाइल सिस्टम (यह FUSE का उपयोग करता है)। विंडोज के लिए समान उपकरण हैं।
$ wget http://sourceforge.net/projects/httpfs/files/httpfs/1.06.07.02
$ tar -xjf httpfs_1.06.07.10.tar.bz2
$ rm httpfs
$ ./make_httpfs
माउंट एक दूरस्थ ज़िप फ़ाइल और इसे से एक फ़ाइल निकालने:
प्राप्त करें/httpfs निर्माण
$ mkdir mount_pt
$ sudo ./httpfs http://server.com/zipfile.zip mount_pt
$ sudo ls mount_pt
zipfile.zip
$ sudo unzip -p mount_pt/zipfile.zip the_file_I_want.txt > the_file_I_want.txt
$ sudo umount mount_pt
बेशक आप भी बगल में जो कुछ भी अन्य उपकरणों का उपयोग कर सकते हैं के कमांड लाइन एक। (मुझे सूडो की आवश्यकता है क्योंकि ऐसा लगता है कि मेरी मशीन पर FUSE सेट अप किया गया है, आपको इसकी आवश्यकता नहीं होनी चाहिए)
मुझे पता है कि यह एक पुराना सवाल है, यह दूसरों के लिए इस समस्या में चल रहा है ।
एक सामान्य व्यक्ति को एक संपीड़ित ज़िप फ़ाइल से एक व्यक्तिगत फ़ाइल डाउनलोड करने में सक्षम होने के कई तरीके हैं, दुर्भाग्यवश वे सामान्य ज्ञान नहीं हैं।
- विंडोज: वहाँ कुछ खुला स्रोत उपकरण और ऑनलाइन वेब सेवाओं, जिनमें शामिल हैं (! कि मैं 10 साल के लिए उपयोग किया है) Iczelion's HTTP Zip Dowloader (open-source)
- लिनक्स: partial-zip (open-source)
- ऑनलाइन: wobzip.org (closed-source)
मुझे आश्चर्य है, अगर आंशिक-ज़िप आपके लिए काम करता है। मेरे लिए यह अच्छा वादा लगता है, जिसने मुझे कुछ भी नहीं दिया। –
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाले पदों/1874 9 4 9 1) – blue112
क्या आप अपनी फ़ाइल को ज़िप के पीछे दिखाई देने की व्यवस्था कर सकते हैं?
डाउनलोड 100k:
$ curl -r -100000 https://www.keepassx.org/releases/2.0.2/KeePassX-2.0.2.zip -o tail.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 97k 100 97k 0 0 84739 0 0:00:01 0:00:01 --:--:-- 84817
चेक क्या फाइलों हम मिला:
$ unzip -t tail.zip
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
error [tail.zip]: attempt to seek before beginning of zipfile
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
error [tail.zip]: attempt to seek before beginning of zipfile
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
error [tail.zip]: attempt to seek before beginning of zipfile
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
error [tail.zip]: attempt to seek before beginning of zipfile
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
testing: KeePassX-2.0.2/share/translations/keepassx_uk.qm OK
testing: KeePassX-2.0.2/share/translations/keepassx_zh_CN.qm OK
testing: KeePassX-2.0.2/share/translations/keepassx_zh_TW.qm OK
testing: KeePassX-2.0.2/zlib1.dll OK
At least one error was detected in tail.zip.
तो पिछले फ़ाइल निकालने:
$ unzip tail.zip KeePassX-2.0.2/zlib1.dll
Archive: tail.zip
error [tail.zip]: missing 7751495 bytes in zipfile
(attempting to process anyway)
inflating: KeePassX-2.0.2/zlib1.dll
- 1. एक ज़िप संग्रह
- 2. सी ++ फ़ाइल कंटेनर (उदा। ज़िप)
- 3. एक ज़िप फ़ाइल
- 4. मेमोरी डाउनलोड और निकालें ज़िप संग्रह
- 5. पायथन: कैसे एक ज़िप फ़ाइल
- 6. रूबी - एक ज़िप फ़ाइल
- 7. क्या ऐप इंजन के साथ एक ज़िप फ़ाइल उत्पन्न करना और वापस करना संभव है?
- 8. Mercurial: एक संग्रह से सिर्फ एक फ़ाइल "क्लोनिंग" एक और में?
- 9. क्या विजुअल स्टूडियो टेम्पलेट फ़ाइल सिर्फ एक नियमित .zip फ़ाइल है या यह कुछ और है?
- 10. क्या एक .NET अनुप्रयोग या सिर्फ एक थ्रेड के लिए CultureInfo सेट करना संभव है?
- 11. कोको एप्लिकेशन से एक ज़िप संग्रह बनाना
- 12. एक बड़ी फ़ाइल डाउनलोड करना - आईफोन एसडीके
- 13. एक फ़ोल्डर से एक ज़िप संग्रह बनाना और Node.js
- 14. मैवेन "लक्ष्य" निर्देशिका का एक ज़िप संग्रह बनाना
- 15. एक ज़िप फ़ाइल में एक एकल फ़ाइल फ़ाइल को संशोधित करना, PHP
- 16. एंड्रॉइड - ज़िप संग्रह
- 17. एक जेएसएस फ़ाइल से संग्रह संग्रहित करना
- 18. linux कैसे एक ज़िप फ़ाइल
- 19. एक डाउनलोड करने योग्य फ़ाइल
- 20. प्रिंटिंग सिर्फ एक आईफ्रेम
- 21. यह देखना कि धारा एक ज़िप फ़ाइल
- 22. पकड़ने एक बैच फ़ाइल (7-ज़िप)
- 23. जावा में एक ऐरे का केवल एक हिस्सा मिलता है?
- 24. डेल्फी: स्ट्रीम से एक ज़िप संग्रह खोलें -> एक स्ट्रीम में निकालें
- 25. क्या सिर्फ एक वर्ग फ़ाइल को प्रतिस्थापित करके जावा वेब एप्लिकेशन को अपडेट करना ठीक है?
- 26. क्या फारो सिर्फ स्क्वैक का एक पुन: पैकेजिंग/पुनर्वितरण है?
- 27. एक ज़िप फ़ाइल उत्पन्न करने के लिए System.IO.Packaging का उपयोग
- 28. संशोधन करना एक संग्रह ObjectDataSource
- 29. एकाधिक फाइलें और ज़िप डाउनलोड करना - क्रोम एक्सटेंशन
- 30. मैं एक संग्रह को हटा कैसे सकता हूं जो एक जेपीए इकाई का हिस्सा है?
यह एक विश्वासघात क्यों कहते हैं? – Nonym
मूर्खतापूर्ण शीर्षक के बावजूद, मुझे लगता है कि यह एक बहुत अच्छा सवाल है। हाँ, यह मुमकिन है"। हालांकि, आवश्यक काम की मात्रा तुच्छ नहीं है ... अंत उपयोगकर्ता के लिए यह "व्यवहार्य नहीं है" (जब तक कि कोई पहले से ही ऐसा टूल नहीं बना लेता है)। –
(चूंकि कोई प्रोग्रामिंग भाषा टैग नहीं है, मुझे लगता है कि वास्तव में ऐसे समाधान को कोड करने की कोई इच्छा नहीं है :-) –