আউটপুট স্ট্রিমে ডেটা ধাক্কা দেওয়ার জন্য আমাকে একটি প্রবাহের পরিষেবা (অ্যাজুরে ব্লব পরিষেবা) কল করতে হবে, তারপরে আমাকে ঘুরিয়ে ফিরিয়ে ক্লায়েন্টের কাছে ফিরে যেতে হবে, আক্কা মাধ্যমে। আক্কা (এবং কেবলমাত্র সার্লেট কোড) ব্যতীত, আমি কেবল সার্লেটলেট আউটপ্রেমটি পেয়ে এগ্রুর সার্ভিসের পদ্ধতিতে পাস করব।
আমি সবচেয়ে কাছাকাছি গিয়ে হোঁচট খাওয়ার চেষ্টা করতে পারি, এবং স্পষ্টতই এটি ভুল, এটি এমন কিছু
Source<ByteString, OutputStream> source = StreamConverters.asOutputStream().mapMaterializedValue(os -> {
blobClient.download(os);
return os;
});
ResponseEntity resposeEntity = HttpEntities.create(ContentTypes.APPLICATION_OCTET_STREAM, preAuthData.getFileSize(), source);
sender().tell(new RequestResult(resposeEntity, StatusCodes.OK), self());
ধারণাটি হ'ল আমি ব্লবক্লিয়েন্ট.ডাউনলোড (ওএস) কল করে একটি আউটপুটস্প্রিম পপুলেশন পাওয়ার জন্য একটি প্রবাহ পরিষেবাটি কল করছি;
মনে হচ্ছে ল্যাম্বদা ফাংশনটি ডেকে ফিরে আসে এবং ফিরে আসে তবে তারপরে এটি ব্যর্থ হয়, কারণ কোনও তথ্য বা কিছু নেই। যেন আমার মনে হচ্ছে না যে ল্যাম্বডা ফাংশনটি কাজটি করে তবে সম্ভবত কিছু জিনিস ফেরত দেয় যা কাজ করে? নিশ্চিত না.
এক এই কিভাবে কাজ করে?
download
? এটি কি ডেটা প্রবাহিত করেos
এবং কেবল একবার ডেটা লিখিত হয়ে যাওয়ার পরে ফিরে আসে?