6

पर सर्वलेट स्कीमा को कनवर्ट करें क्या निम्न रूपांतरण जावा सर्वलेट से Google ऐप-इंजन क्लाउड एंडपॉइंट में कनवर्ट करने के लिए होगा?ऐप-इंजन एंडपॉइंट स्कीमा

मैं Blobstore कॉलबैक कार्रवाई करने के लिए अंत बिंदु का उपयोग करने की कोशिश कर रहा हूँ:

@ApiMethod(name = "save_blob_key", path = "save_blob_key" httpMethod = HttpMethod.POST) 
public void saveBlobKey(HttpServletRequest req) throws IOException { … } 

संदर्भ के लिए

public void doPost(HttpServletRequest req, HttpServletResponse res) 
throws ServletException, IOException { … } 

से

रेफरी: https://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

समस्या:

बड़ा hickup यहाँ है कि निम्नांकित दो पंक्तियों वर्ग HttpServletRequest आवश्यकता लगते हैं और मैं अगर मैं इसे समाप्ति बिंदु को पास कर सकते हैं पता नहीं है।

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 
Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req); 

संपादित करें:

मैं इस समस्या को हल करने के लिए काफी मार्गों का एक बहुत कोशिश कर रहे हैं। मेरा नवीनतम combining blob servlet with endpoint api है। फिर भी मैं कोड को काम करने में सक्षम नहीं हूं। तो बकाया किसी भी व्यक्ति को जाता है जो समाधान प्रदान करता है या जानकारी जो वास्तव में समाधान पर ले जाती है।

+0

अब कई सालों रहे हैं, क्या आप समाधान ढूंढ पाए? – Micro

उत्तर

3

आप ब्लॉबस्टोर blobstoreService.createUploadUrl पर कॉलबैक के रूप में एंडपॉइंट्स का उपयोग नहीं कर सकते हैं। यह related answer देखें। mediaUpload का समर्थन करने के लिए एक खुली सुविधा अनुरोध है, जो संभवतः आप जो चाहते हैं उसे समान कार्यक्षमता प्रदान करेंगे। समर्थन दिखाने और स्वचालित अपडेट प्राप्त करने के लिए इसे तारांकित करने के लिए स्वतंत्र महसूस करें।

जो डेटा मैं अपलोड करने का प्रयास कर रहा हूं उसकी मात्रा के आधार पर, मैं जो सुझाव दूंगा, वह दो संभावित विकल्पों में से एक होगा।

यदि आप ब्लॉब डेटा की थोड़ी मात्रा अपलोड कर रहे हैं, तो डेटास्टोर में फिट होगा, ShortBlob (500 बाइट्स तक) या Blob (1 एमबी तक) का उपयोग अपने एंडपॉइंट्स इकाई वर्ग में करें। एंडपॉइंट बैकएंड पर क्रमबद्धता को संभालेगा और ग्राहक पुस्तकालयों के माध्यम से बेस 64-एन्कोडेड तारों की अपेक्षा करेगा (और वापस भेजें)। यह एक बहुत ही सरल, सीधा दृष्टिकोण है।

यदि आप 1 एमबी से बड़े ब्लॉब्स प्रदान करना चाहते हैं, तो अब Google Cloud Storage JSON API का उपयोग करें। यह एपीआई उसी क्लाइंट लाइब्रेरी का उपयोग एंडपॉइंट्स के रूप में करता है, इसलिए आपको अपने एप्लिकेशन के साथ दूसरी लाइब्रेरी को बंडल करने की चिंता करने की आवश्यकता नहीं है। This page में जावा क्लाउड स्टोरेज में जावा क्लाउड स्टोरेज में ब्लॉब डालने का एक उदाहरण है।

+0

MediaUpload के लिए एंडपॉइंट्स समर्थन के बारे में समस्या अब लगभग 2.5 वर्ष पुरानी है। कुछ नहीं हुआ नहीं। यह AppEngine मुद्दों के लिए विशिष्ट है। मुझे आश्चर्य है कि जब Google वसंत या शरद ऋतु की सफाई में ऐपइंजिन से छुटकारा पायेगा? – rakensi

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