Ben sonra bir geri dönün ve geri akka aracılığıyla istemciye itmek gerekir bir OutputStream, veri itmek için bir upstream hizmet (Azure Blob Service) çağırmak gerekir. Akka (ve sadece sunucu uygulaması kodu) olmadan, ben sadece ServletOutputStream olsun ve masmavi hizmetin yöntemine geçmek.
Tökezlemeye çalışabileceğim en yakın şey ve açıkça bu yanlış, böyle bir şey
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());
Fikir blobClient.download (os) çağırarak bir çıkış akışı almak için bir yukarı hizmet çağırıyorum;
Görünüşe göre lambda işlevi çağrılır ve geri döner, ancak daha sonra başarısız olur, çünkü veri veya başka bir şey yoktur. Sanki bu lambda fonksiyonunu yapmam gerekiyordu, ama belki de işi yapan bir nesneyi döndürürüm? Emin değil.
Kişi bunu nasıl yapar?
download
? Verileri akışa aktarıyoros
ve yalnızca veri yazıldıktan sonra geri dönüyor mu?