2013-11-01 8 views
5

दखल के साथ बड़ी फाइल डाउनलोड मैं अजगर-अनुरोध बनाम स्ट्रीमिंग डाउनलोड बड़ी फ़ाइल (लगभग 1.5 जीबी) के साथ समस्या है। 2.0.1स्ट्रीमिंग अजगर-अनुरोध

with open("saved.rar",'wb') as file: 
    r = session.get(url,stream=True,timeout=3600) 
    for chunk in r.iter_content(chunk_size=1024): 
     if chunk: 
      file.write(chunk) 
      file.flush() 

मैं अपने VPS पर यह कई बार परीक्षण किया है और कभी-कभी इसे 200 एमबी, 500 एमबी या 800 एमबी डाउनलोड किया जाता है और बिना किसी त्रुटि के इसे बचाया जाता है। यह टाइमआउट तक नहीं पहुंचा, बस डाउनलोड खत्म होने की तरह बंद कर दिया।

होस्ट जहां मैं इस फ़ाइल को डाउनलोड कर रहा हूं स्थिर है क्योंकि मुझे ब्राउज़र में इस फ़ाइल को डाउनलोड करने में कोई समस्या नहीं है।

पायथन अनुरोधों में बड़ी फ़ाइल डाउनलोड करने का कोई तरीका है और 100% सुनिश्चित करें कि यह पूरी फ़ाइल है?

@Edit

मैं urllib का उपयोग कर इसका समाधान कर लिया, समस्या केवल अनुरोध के साथ है। वैसे भी मदद के लिए धन्यवाद।

+5

मैं नेटवर्क के मुद्दों, आदि लेकिन हम फ़ाइल आकार पता है इससे पहले कि हम अगर आप पूरी फ़ाइल डाउनलोड किया है की जाँच करने के डाउनलोड शुरू, तो आप इस का उपयोग कर urllib कर सकते हैं अपने अवतार में तस्वीर से विचलित हूँ! lol! मैं मजाक कर रहा था। एसओ में इतना आम नहीं है .... इस लिंक को देखें ... http: //stackoverflow.com/questions/16694907/how-to-download-large-file-in-python-with-requests-py –

+0

@Jack_of_All_Trades दुर्भाग्य से, मुझे वहां कुछ भी नहीं मिला। यह वही कोड है जो मेरे पास है। – Emily

उत्तर

0

कई समस्याएं हो सकती हैं जो डाउनलोड को बाधित कर सकती हैं।

site = urllib.urlopen("http://python.org") 
meta = site.info() 
print meta.getheaders("Content-Length") 

का उपयोग करते हुए अनुरोध:

r = requests.get("http://python.org") 
r.headers["Content-Length"] 
+0

ठीक है, लेकिन मुझे आश्चर्य है कि अनुरोधों में क्या गलत है क्योंकि मुझे पूरी फ़ाइल प्राप्त करने के लिए फ़ाइल को 10 बार डाउनलोड करने की आवश्यकता है, जब मुझे कर्ल के साथ कोई समस्या नहीं है। – Emily

+0

आपको ostfsoverflow.com/a/7127162/2938650 में समझाए गए os.fsync() की आवश्यकता हो सकती है। किसी भी त्रुटि और अपवाद लॉग करने का प्रयास करें। मुझे संदेह है कि स्मृति संदेश से बाहर हो सकता है। – adam

संबंधित मुद्दे