fun getInputStream()

in plugin-bazel-event-service/src/main/kotlin/bazel/file/BytestreamReader.kt [11:32]


    fun getInputStream(uri: URI): InputStream {
        val channel =
            ManagedChannelBuilder
                .forAddress(uri.host, uri.port)
                .usePlaintext()
                .build()

        try {
            val blockingStub = ByteStreamGrpc.newBlockingStub(channel)
            val readRequest =
                ByteStreamProto.ReadRequest
                    .newBuilder()
                    .setResourceName(uri.toString())
                    .build()

            val readResponse = blockingStub.read(readRequest)
            return DataStream(channel, readResponse)
        } catch (ex: Exception) {
            channel.shutdown()
            throw ex
        }
    }