Mega.co.nz जैसी फ़ाइलों को डाउनलोड करें


89

आज मैंने Mega.co.nz की जाँच की और मैं कुछ विशेषताओं के बारे में उत्साहित हूँ। उदाहरण के लिए डाउनलोड पेज में यह ब्राउज़र पर फाइलें डाउनलोड करेगा और उसके बाद उन्हें जावास्क्रिप्ट के साथ डिक्रिप्ट करेगा।

उदाहरण के लिए एक पीएनजी फ़ाइल डाउनलोड करने के लिए इस लिंक को देखें:

https://mega.co.nz/#!7JRgFJzJ!efpJGWuPhYczLexY19ex82nuwfs4sR_DG4JXddeClH4

इस लिंक में यह ब्राउज़र के अंदर डाउनलोड शुरू कर देगा। मैं निरीक्षण तत्व में नेटवर्क टैब की जाँच की यह AJAX के साथ फ़ाइल के कुछ हिस्सों को डाउनलोड करेगा उसके बाद फ़ाइल के सभी हिस्सों को पूरा किया, उन सभी को स्वचालित रूप से कंप्यूटर पर एक फ़ाइल में बचाएगा!

मैं जानना चाहता हूं कि वे क्या करते हैं? क्या आप इस तरह से ब्राउज़र के अंदर डाउनलोड फ़ाइलों के बारे में कुछ संसाधन समझा या लिंक कर सकते हैं?

यह भी केवल जावास्क्रिप्ट के साथ किया जा सकता है या कुछ फ़्लैश प्लगइन्स या ऐसा कुछ का उपयोग करना चाहिए?


3
हाँ, और यदि आप एक बड़ी फ़ाइल डाउनलोड करते हैं, तो सिस्टम निरंतर पेजिंग के कारण क्रॉल तक धीमा हो जाता है
kinokijuf

जवाबों:


102

मेगा इसे करने के लिए कई अलग-अलग तरीकों का उपयोग करता है: (27 नवंबर 2013 तक)

  1. फाइलसिस्टम एपीआई (क्रोम / फ़ायरफ़ॉक्स एक्सटेंशन पॉलीफ़िल)
  2. Adobe Flash SWF फ़िल्टर (पुराने ब्राउज़र कमबैक)
  3. BlobBuilder (IE10 / IE11)
  4. मेगा फ़ायरफ़ॉक्स एक्सटेंशन (पदावनत)
  5. Arraybuffer / Blob (मेमोरी में) + एक [डाउनलोड] (ब्राउज़रों के लिए जो एक [डाउनलोड] का समर्थन करते हैं)
  6. MediaSource (प्रयोगात्मक स्ट्रीमिंग समाधान)
  7. अनुक्रमित संग्रहण में संग्रहीत ब्लॉब + [डाउनलोड] (फ़ायरफ़ॉक्स 20+, इन-मेमोरी ब्लोब विधि में सुधार)

(स्रोत: https://eu.static.mega.co.nz/js/download_6.js )


लेकिन मुझे लगता है कि यह फ़ायरफ़ॉक्स पर भी काम करता है। मुझे यहां एक नमूना मिला jsfiddle.net/kGLnP/5 । यह नमूना क्रोम और फ़ायरफ़ॉक्स पर सही तरीके से काम करता है। लेकिन वे सफारी या ओपेरा जैसे अन्य ब्राउज़रों के लिए क्या करते हैं? मैं mega.co.nz लिंक इन ब्राउज़रों के साथ भी डाउनलोड कर सकते हैं ..
आमिर Molaa

1
हां, आपके द्वारा प्रदान किया गया नमूना ( jsfiddle.net/kGLnP/5 ) फ़ायरफ़ॉक्स के लिए काम करना चाहिए, लेकिन केवल नवीनतम वाले (संस्करण 20 या बाद के संस्करण), डेवलपर के लिए देखें। pmillailla.org/en-US/docs/HTML/Element/a समर्थन के बारे में अधिक जानकारी)। मैंने अभी मेगा के जावास्क्रिप्ट कोड को पढ़ा है और अपने उत्तर को अपडेट किया है। (यह अन्य ब्राउज़रों के बारे में आपके सवाल का जवाब देगा। मूल रूप से, वे फ्लैश का उपयोग करने का सहारा लेंगे जब वे जेएस-केवल समाधान का उपयोग नहीं कर सकते।)
रोबर्टो

वाह मैं कल ही इस साइट को देखा था और एक ही सवाल पूछने जा रहा था। जब मैंने गेम मॉड डाउनलोड करने की कोशिश की तो मुझे आश्चर्य हुआ कि ब्राउज़र के अंदर तुरंत डाउनलोड शुरू होने से मेरी पूरी गति दिखाई गई !!! मैं एफएफ 20.0.1 का उपयोग कर रहा था।
वेल्कम

क्या रॉबर्टो का जवाब अभी तक है? मैं फ़ायरफ़ॉक्स और अक्षम फ्लैश में Mega.co.nz से एक बड़ी फ़ाइल डाउनलोड करने की कोशिश की है और यह अभी भी काम कर रहा है। जब एक बड़ी फ़ाइल डाउनलोड करने की कोशिश की जा रही है फ़ायरफ़ॉक्स 50 एमबी से अधिक स्टोर करने के लिए अनुमोदन के लिए कह रहा है जो मुझे लगता है कि वे इंडेक्सबीडी का उपयोग करते हैं।
शक्रज

1
नहीं, यह (वास्तव में) अद्यतित नहीं है, वर्तमान डाउनलोड स्क्रिप्ट यहाँ है: eu.static.mega.co.nz/download_46.js । मैंने त्वरित रूप से देखा और यह अभी भी कुछ नए परिवर्धन के साथ एक ही चाल है, जिसमें कैशिंग (इंडेक्सडीडीबी का उपयोग करके, जैसा आपने अनुमान लगाया है) प्रदर्शन सुधार शामिल हैं। जब मेरे पास कोड पढ़ने का समय होगा तो मैं अपना जवाब अपडेट कर दूंगा।
रोबर्टो

4

ब्लॉब और URL APIs का उपयोग करके इन-ब्राउज़र डाउनलोडर का एक बुनियादी कार्यान्वयन यहां लाया गया है । यह 4 समवर्ती अनुरोधों पर एक फ़ाइल डाउनलोड करता है और प्रगति को भी दिखाता है। कृपया ध्यान दें कि ऐसा लगता है कि rangeहेडर स्थापित करना आमतौर पर XHR अनुरोधों पर एक अच्छा विचार नहीं हो सकता है, इस विषय पर एक नज़र डालें ।

डाउनलोड करते समय:

डाउनलोड करते समय

डाउनलोड के बाद:

डाउनलोड के बाद

एक और दिलचस्प विषय मेगा से पॉज़ / रिज्यूमे कार्यक्षमता को लागू करना होगा। वर्तमान ब्राउज़रों का XHR API उस क्षमता की पेशकश नहीं करता है, इसलिए आपके पास केवल एक ही मौका है कि आप कई छोटे आकार की चंक्स डाउनलोड करें और अपने छोटे चंक्स के डाउनलोड किए गए भाग को छोड़ दें, ऐसा लगता है कि यह मेगा पर भी किया गया है। लेकिन fetchस्ट्रीमिंग सुविधा का उपयोग उस उद्देश्य के लिए किया जा सकता है, मैंने अभी तक अच्छी तरह से पता नहीं लगाया है लेकिन यह यहां प्रलेखित है

Btw, इन भयानक परियोजनाओं पर एक नज़र है:


3

MEGAcmd

वहाँ है megacmd , सरकारी कमांड लाइन इंटरफेस। आप इसे https://github.com/meganz/MEGAcmd पर github के स्रोतों से भी बना सकते हैं

megacmd मेगा एसडीके के चारों ओर एक आवरण है और यदि आप इसे अपने दम पर संकलित करने का निर्णय लेते हैं, तो आपको मेगा एसडीके के लिए नीचे सूचीबद्ध लोगों के समान ही निर्भरता (उबंटू पर) की आवश्यकता होगी।

उपयोग के विवरण के लिए MEGAcmd उपयोगकर्ता गाइड देखें

मेगा एसडीके

मेगा एसडीके जिसे जीथब पेज पर दिए गए चरणों का पालन करके संकलित किया जा सकता है । इसमें megacliउपयोगिता शामिल है जो सिंकिंग और डाउनलोड / अपलोड करने के लिए एक इंटरैक्टिव शेल है।

## compilation steps for ubuntu
git clone --depth 1 https://github.com/meganz/sdk megasdk
cd megasdk
sudo apt install libcurl4-openssl-dev  libc-ares-dev libssl-dev libcrypto++-dev  zlib1g-dev libsqlite3-dev  libfreeimage-dev libswscale-dev
autogen.sh
./configure
make -j 8  ## pass the number of CPUs you have to speed up compilation
sudo make install

मेगा-थ्रेड पायथन मॉड्यूल (पदावनत)

जिन लोगों को यह प्रश्न मिला है, उनके लिए टेक्स्ट मोड में एक लिंक डाउनलोड करने के लिए एक वास्तविक नुस्खा की खोज करना एक सरल अजगर स्क्रिप्ट है जो मेगाबॉडी मॉड्यूल का उपयोग करता है (इसे इसके साथ स्थापित करें sudo pip install mega.py):

import sys
import getpass
#install the module with: 'sudo pip install mega.py'
from mega import Mega

email = '_your_megamail_@domain.com'
password = getpass.getpass(prompt='Mega password for {}:'.format(email))

mega = Mega({'verbose': True})
m = mega.login(email, password)
m.download_url(sys.argv[1])

स्क्रिप्ट पाइथन 2.7 के साथ काम करती है और मेगा.nz लिंक का URL लेती है।

getpass का उपयोग कंसोल में पासवर्ड को सुरक्षित रूप से दर्ज करने के लिए किया जाता है ताकि स्क्रिप्ट में पासवर्ड को स्टोर करने से बचा जा सके - यदि आप पासवर्ड को हार्डकोड करने में सहज हैं तो इसे लाइन # 7 में सेट करें।

megatools

अधिकांश लिनक्स / पॉज़िक्स बॉक्स पर आप मानक रिपॉजिटरी से मेगाटूल स्थापित कर सकते हैं , अर्थात

उबंटू / डेबियन पर:

apt install megatools

MacOS पर:

brew install megatools

एक बार स्थापित होने के बाद आपको कई कमांड लाइन उपयोगिताओं मिलेंगी, जिनके बीच megadlसाझा की गई फाइलें और अपनी खुद की फाइलें दोनों डाउनलोड कर सकते हैं। megadl -hविवरण के लिए देखें।


0

2020 तक, आप ब्राउज़र के अंतर्निहित डाउनलोड प्रबंधक के साथ अपने कस्टम कोड को मूल रूप से एकीकृत करने के लिए सेवा कार्यकर्ताओं का उपयोग कर सकते हैं: https://developers.google.com/web/updates/2016/06/sw-readablestreams

मैं यह भी अनुमान लगाता हूं कि फ़ाइल देखने के बजाए आपके पास निम्नलिखित हेडर होंगे, जिन्हें डाउनलोड किया जाना है:

 headers: {
   'Content-Type': 'application/octet-stream',
   'Content-Disposition': 'attachment; filename="your_filename.bin"',
 }

व्यक्तिगत रूप से मुझे यह दृष्टिकोण फ़ायरफ़ॉक्स में Google क्रोम दोनों में निर्दोष रूप से काम करने के लिए मिला है, और मैं पहले से ही उत्पादन में इसका उपयोग कर रहा हूं।

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