2012-08-06 14 views
9

मैं Snapito के वेब पेज स्नैपशॉट एपीआई से छवि फ़ाइलों को डाउनलोड करने के लिए बैश स्क्रिप्ट लिख रहा हूं। एपीआई विभिन्न HTTP प्रतिक्रिया कोड और/या कुछ कस्टम शीर्षकों द्वारा संकेतित विभिन्न प्रतिक्रियाओं को वापस कर सकता है। मेरी स्क्रिप्ट को एक स्वचालित क्रॉन नौकरी के रूप में चलाने का इरादा है जो एक MySQL डेटाबेस से यूआरएल खींचता है और स्क्रीनशॉट को स्थानीय डिस्क पर सहेजता है।फ़ाइल डाउनलोड करने और शीर्षलेख और स्थिति कोड देखने के लिए कर्ल का उपयोग

मैं curl का उपयोग कर रहा हूं।

  1. निकालें HTTP प्रतिक्रिया कोड
  2. हेडर
  3. सहेजें फ़ाइल निकालें स्थानीय स्तर पर (यदि अनुरोध सफल रहा)
: मैं एक भी कर्ल आदेश का उपयोग कर इन 3 बातें करना चाहते हैं

मैं इसे कई curl अनुरोधों का उपयोग करके कर सकता हूं, लेकिन मैं स्नैपिटो के सर्वरों को मारने की संख्या को कम करना चाहता हूं। वहाँ कोई curl विशेषज्ञों वहाँ से बाहर?

या अगर किसी के पास एक बैश स्क्रिप्ट है जो स्नैपिटो एपीआई प्रतिक्रियाओं के पूर्ण दस्तावेज सेट का जवाब दे सकती है, तो यह बहुत ही शानदार होगा। यहां their API documentation है।

धन्यवाद!

+0

आप आउटपुट को पार्स कर सकते हैं, लेकिन मुझे लगता है कि यह पाइथन/रूबी/php/... –

उत्तर

14

उपयोग डंप हेडर विकल्प: curl -D /tmp/headers.txt http://server.com

+1

आह, हाँ में आसान है। मैंने '-D' विकल्प को अनदेखा कर दिया था। यहां मैं अब उपयोग कर रहा हूं: 'curl -s -L-d/dev/stdout -o $ IMAGE_FILE $ SNAPITO_URL' धन्यवाद! – curtisdf

6

कर्ल मैं का उपयोग करें (HTTP शीर्ष लेख शामिल हैं) - जो हेडर निकलेगा, एक रिक्त पंक्ति के बाद, सामग्री के द्वारा पीछा किया।

आप हेडर/सामग्री को विभाजित कर सकते हैं (या उपरोक्त सुझाव के अनुसार फ़ाइल को सीधे सहेजने के लिए डीडी का उपयोग कर सकते हैं)।

+1

मुझे लगता है कि आप '-I' विकल्प के बारे में सोच रहे थे, न कि' -i'। – curtisdf

+1

नहीं। -मैं केवल हेडर है, -इ हेडर + सामग्री है। –

+1

मुझे लगता है, आप सही हैं। '-i' का उपयोग करने से मुझे एक और समस्या मिली होगी: हेडर को बाइनरी छवि डेटा से अलग करने के लिए आउटपुट को पार्स करना। मैंने इसे '-D' विकल्प stdout (और '$()' रैपर द्वारा कैप्चर किया गया) के साथ अच्छी तरह से काम किया है, और फ़ाइल को सहेजने के लिए' -o' विकल्प। हालांकि धन्यवाद! मुझे अगली बार '-i' में देखना याद रखना होगा। – curtisdf

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