업스트림 서비스 (Azure Blob Service)를 호출하여 데이터를 OutputStream으로 푸시 한 다음 akka를 통해 클라이언트로 되돌려 보내야합니다. akka (및 서블릿 코드)가 없으면 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());
아이디어는 blobClient.download (os)를 호출하여 출력 스트림을 채우기 위해 업스트림 서비스를 호출하는 것입니다.
람다 함수가 호출되어 반환되는 것처럼 보이지만 나중에 데이터 나 무언가가 없기 때문에 실패합니다. 내가 람다 함수가 작업을 수행하도록되어 있지는 않지만 작업을 수행하는 객체를 반환합니까? 확실하지 않다.
어떻게합니까?
download
무엇입니까?os
데이터 쓰기가 완료되면 데이터를 스트리밍 하고 반환합니까?