में काम करता है मेरे पास एक ऐपइंजिन एप्लिकेशन है जो उपयोगकर्ता द्वारा प्रदान किए गए छवि डेटा को स्टोर करने के लिए ब्लॉबस्टोर का उपयोग करता है। जब मैं क्रोम में किसी फॉर्म से उस एप्लिकेशन पर छवियां अपलोड करता हूं तो यह ठीक काम करता है। जब मैं एक एंड्रॉइड एप्लिकेशन से एक छवि अपलोड करने का प्रयास करता हूं तो यह विफल हो जाता है। यदि मैं विकास सर्वर के खिलाफ दौड़ रहा हूं, तो दोनों विधियां ठीक काम करती हैं, लेकिन एंड्रॉइड अपलोड लाइव सेवा के खिलाफ काम नहीं करता है।एपइंजिन ब्लोबस्टोर अपलोड एक ऐसे अनुरोध के साथ विफल रहा है जो विकास पर्यावरण
यह क्रोम से अनुरोध है:
POST /_ah/upload/?userToken=11001/AMmfu6ZCyMQQ9YdiXal3SmSXIRTQIuSRXkNc-i3JmU0fqx_kJbUJ2OMLcS2lXhVJSK4qs7regViTKzOPz5ejoZYi0nAD5o8vNltiOViQw6DZO7_byZz3Ut0/ALBNUaYAAAAAS_lusgPMAGmpPrg0BuNsJyymX-57ob4i/ HTTP/1.1
Host: photohuntservice.appspot.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1064 Safari/532.5
Referer: http://photohuntservice.appspot.com/debug_newpuzzle?userToken=11001
Content-Length: 60360
Cache-Control: max-age=0
Origin: http://photohuntservice.appspot.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarybl05YLmLbFRf2MzN
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="userToken"
11001
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="img"; filename="Photo_020908_001.jpg"
Content-Type: image/jpeg
<image data>
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="longitude"
-122.084095
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="latitude"
37.422006
------WebKitFormBoundarybl05YLmLbFRf2MzN--
यह मेरे मुवक्किल से अनुरोध है (जो एंड्रॉयड पर जावा में लिखा है, लेकिन मुझे लगता है कि प्रासंगिक है नहीं लगता है):
POST /_ah/upload/?userToken=11001/AMmfu6Zf9an6AU4lT9UuhIpxOZyOYb1LMwimFpeSh8zr6J1sX9F2ddJW3Qlsw0kwV3oALv-TNPWRQ6g4_Dgwk0UTwF47bbc78Yl44kDeV69MydTuR3N46S4/ALBNUaYAAAAAS_mMr3CYqTg3aVBDjhRxP0DyyRdvotyG/ HTTP/1.1
Content-Type: multipart/form-data;boundary=----WebKitFormBoundaryhdyNAhmOouRDGErG
Cache-Control: max-age=0
Accept: */*
Origin: http://photohuntservice.appspot.com
Connection: keep-alive
Referer: http://photohuntservice.appspot.com/getuploadurl?userToken=11001
Content-Length: 2638
Host: photohuntservice.appspot.com
User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
Expect: 100-Continue
------WebKitFormBoundaryhdyNAhmOouRDGErG
Content-Disposition: form-data; name="userToken"
11001
------WebKitFormBoundaryhdyNAhmOouRDGErG
Content-Disposition: form-data; name="img";filename="PhotoHunt.jpg"
Content-Type: image/jpeg
<image data>
------WebKitFormBoundaryhdyNAhmOouRDGErG
Content-Disposition: form-data; name="latitude"
37.422006
------WebKitFormBoundaryhdyNAhmOouRDGErG
Content-Disposition: form-data; name="longitude"
-122.084095
------WebKitFormBoundaryhdyNAhmOouRDGErG--
दोनों ही मामलों अनुरोध को पकड़ने के लिए AppEngine अजगर कोड में एक ही है:
class UploadPuzzle(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads()
probl एम यह है कि जब उत्पादन ऐपइंजिन सेवा पर चल रहा है self.get_uploads() मेरे क्लाइंट ऐप से अनुरोध किए जाने पर एक खाली सूची देता है। विकास अनुरोध पर दोनों अनुरोध जो मैं उम्मीद करता हूं (इसमें एक blob_info के साथ एक सूची) लौटाता है, और क्रोम दोनों मामलों में जो अपेक्षा करता है वह लौटाता है।
अच्छा पता लगाने का काम! क्या आप इसके लिए एक बग फाइल कर सकते हैं? –
पहले से ही किया गया है: http://code.google.com/p/googleappengine/issues/detail?id=3273 –
वह @ # $%! उत्पादन सर्वर "निश्चित रूप से फ़ाइल नाम से पहले वह जगह अधूरा है, मुझे इसे साफ़ करने दें", मैंने सोचा। ओह, मैंने अपनी कीमत के लिए भुगतान की कीमत। – drcode