2009-08-12 9 views
6

मैं एक मल्टीपार्ट फ़ॉर्म के लिए एक आराम से वेब सेवा (यह पांडा वीडियो एन्कोडिंग सेवा) को डेटा भेजने के लिए restclient का उपयोग कर रहा हूँ। यद्यपि यह चाल है कि यह है कि जिस फ़ाइल में मैं रेस्टक्लिंट (टेक्नोवीन शाखा) में गुजर रहा हूं, वह मेरे स्वयं के रूप से आ रहा है जिसे उपयोगकर्ता प्रस्तुत करता है।मल्टीपार्ट पदों के साथ restclient का उपयोग

तो, इस माध्यम से चलने दें। एक उपयोगकर्ता मेरे रेल ऐप में एक फाइल पोस्ट करता है। मेरे नियंत्रक में, यह पैराम्स [फ़ाइल] से फ़ाइल प्राप्त करता है। मैं फिर RestClient का उपयोग कर पांडा को पैरा [: फ़ाइल] पास करना चाहता हूं।

मुझे जो त्रुटि मिल रही है वह पांडा सर्वर पर है। मैंने देखा कि स्टैक ट्रेस में फ़ाइल पैराम एक स्ट्रिंग में भी है (जो मुझे लगता है कि पांडा एक अच्छे स्टैक्र्रेस के लिए स्ट्रिंग में बदल रहा है)।

~ Started request handling: Wed Aug 12 18:05:15 +0000 2009 
~ Params: {"format"=>"html", "multipart"=>"true", "account_key"=>"SECURE_KEY", "action"=>"upload", "id"=>"SECURE_ID", "controller"=>"videos", "file"=>"#<File:0xcf02ca4>"} 
~ 9bfb1750-6998-012c-4509-12313900b0f6: (500 returned to client) InternalServerErrorcan't convert nil into String 
/var/local/www/panda/app/models/video.rb:246:in `extname' 
/var/local/www/panda/app/models/video.rb:246:in `initial_processing' 
/var/local/www/panda/app/controllers/videos.rb:79:in `upload' 
+0

क्या आप कह सकते हैं कि आप इस समस्या को कैसे समझते हैं? –

उत्तर

1

मुझे संदेह है कि आप वास्तव में रेल से सीजीआई-स्टाइल अपलोड पैराम को निष्क्रिय कर सकते हैं और इसे काम करने की उम्मीद कर सकते हैं।

रेल में नियमित अपलोड में कुछ अतिरिक्त विशेषताएं होंगी जो पोस्ट संसाधन (जैसे मूल फ़ाइल नाम और इसी तरह) में नहीं हैं, और एक रेल अपलोड में वास्तविक फ़ाइल डेटा के साथ एक आईओ शामिल है। रेल के रूप में एक फ़ाइल अपलोड ऑब्जेक्ट एक टेम्पलफ़ाइल हैंडल हो सकता है और अपलोड के आकार के आधार पर एक स्ट्रिंगियो हो सकता है।

आपको प्रभावी ढंग से करने के लिए आराम से क्लाइंट के लिए अपने अपलोड को "पुनर्निर्मित" करने के लिए प्रभावी रूप से करने की आवश्यकता है, और पुन: क्षतिग्रस्त और repound Tempfile ऑब्जेक्ट को restclient पर पास करें। शायद आप पूरे पैरा के बजाय अपलोड ऑब्जेक्ट को चुनने से दूर हो सकते हैं [: file]

0

ऐसा लगता है कि समस्या बाकी क्लाइंट के फ़ाइल के पोस्टिंग के साथ है, तो curb जैसे पोस्ट करने के लिए एक वैकल्पिक विधि देखें। इस प्रश्न पर बहुखण्डीय प्रपत्र डेटा पोस्ट करने के लिए उदाहरण के

बहुत सारे: Ruby: How to post a file via HTTP as multipart/form-data?

1

पुष्टि करें कि आपके restclient कार्रवाई स्थानीय स्तर पर पहले बचा सकता है। यदि कार्रवाई स्थानीय रूप से सहेज नहीं सकती है, तो आपको एक बेहतर विचार होगा कि परेशानी शूटिंग के दौरान कहां देखना है।

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