मैं एक प्ले 2.0 जावा एप्लिकेशन लिख रहा हूं जो उपयोगकर्ताओं को फ़ाइलों को अपलोड करने की अनुमति देता है।प्ले फ्रेमवर्क 2.0 में स्ट्रीम के रूप में फ़ाइल अपलोड करना
void store(InputStream stream, String path, String contentType)
मैं निम्नलिखित सरल नियंत्रक का उपयोग काम कर अपलोड करने के लिए प्रबंधित किया है: उन फ़ाइलों मैं एक जावा पुस्तकालय का उपयोग कर का उपयोग एक तीसरे पक्ष सेवा पर जमा हो जाती, विधि मैं इस एपीआई में उपयोग निम्न हस्ताक्षर हैं:
public static Result uploadFile(String path) {
MultipartFormData body = request().body().asMultipartFormData();
FilePart filePart = body.getFile("files[]");
InputStream is = new FileInputStream(filePart.getFile())
myApi.store(is,path,filePart.getContentType());
return ok();
}
मेरी चिंता का विषय है कि इस समाधान क्योंकि डिफ़ॉल्ट रूप से कुशल नहीं है खेलने ढांचे भंडार सभी डेटा सर्वर पर एक अस्थायी फ़ाइल में ग्राहक द्वारा अपलोड की गई तो मेरे uploadFile() नियंत्रक में प्रणाली को बुलाती है।
एक पारंपरिक सर्वलेट आवेदन मैं एक सर्वलेट इस तरह से बर्ताव कर लिखा है | में:
myApi.store(request.getInputStream(), ...)
मैं हर जगह खोज रहे होते हैं और किसी भी समाधान नहीं मिला। मैंने पाया सबसे नज़दीकी उदाहरण Why makes calling error or done in a BodyParser's Iteratee the request hang in Play Framework 2.0? है, लेकिन मुझे नहीं मिला कि मेरी जरूरतों को पूरा करने के लिए इसे कैसे संशोधित किया जाए।
क्या इस व्यवहार को प्राप्त करने के लिए play2 में कोई तरीका है, यानी क्लाइंट द्वारा अपलोड किए गए डेटा को वेब-एप्लिकेशन को सीधे "किसी अन्य सिस्टम" पर जाने के लिए अपलोड किया जा रहा है?
धन्यवाद।
क्या स्कैला के बजाए जावा में ऐसा करने के लिए वैसे भी है? :( – by0