2
ส่งกระแสข้อมูล Akka ไปยังบริการอัปสตรีมเพื่อเติมข้อมูล
ฉันจำเป็นต้องเรียกใช้บริการอัปสตรีม (Azure Blob Service) เพื่อส่งข้อมูลไปยัง OutputStream ซึ่งฉันต้องเปิดและส่งกลับไปยังไคลเอนต์ถึง akka หากไม่มี akka (และเพียงรหัส servlet) ฉันจะได้รับ ServletOutputStream และส่งต่อไปยังวิธีการของบริการ Azure ที่ใกล้ที่สุดที่ฉันสามารถพยายามสะดุดและชัดเจนว่านี่เป็นสิ่งที่ผิดคืออะไรเช่นนี้ 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()); แนวคิดคือฉันกำลังเรียกใช้บริการ upstream เพื่อรับข้อมูลขาออกโดยการเรียก blobClient.download (os) ดูเหมือนว่าฟังก์ชั่นแลมบ์ดาได้รับการโทรและส่งคืน แต่หลังจากนั้นมันก็ล้มเหลวเนื่องจากไม่มีข้อมูลหรืออะไรบางอย่าง ราวกับว่าฉันไม่ควรที่จะมีฟังก์ชั่นแลมบ์ดาทำงาน แต่อาจส่งคืนวัตถุบางอย่างที่ทำงานได้หรือไม่ ไม่แน่ใจ. คนเราจะทำสิ่งนี้ได้อย่างไร