sarvagya agarwal
09/30/2022, 3:17 PMvar firstChunk = true
val fileChunks = flow {
if(firstChunk) {
val metadata = MetaData.newBuilder()
.setPath(file.path)
.setConvertToPdf(BoolValue.of(convertToPdf))
.build()
emit(FileUploadRequest.newBuilder().setMetadata(metadata).build())
firstChunk = false
} else {
while(true) {
val size = inputStream.read(chunk)
if(size <= 0) break
val fileChunk = FileChunk.newBuilder()
.setData(ByteString.copyFrom(chunk, 0, size)).build()
emit(FileUploadRequest.newBuilder().setContent(fileChunk).build())
}
}
}
Trying to create a flow of file bytes where the first byte is metadata of the file.Robert Williams
09/30/2022, 3:47 PMfirstChunk
check is doing nothing because flow
is already sequential
flow {
val metadata = MetaData.newBuilder()
.setPath(file.path)
.setConvertToPdf(BoolValue.of(convertToPdf))
.build()
emit(FileUploadRequest.newBuilder().setMetadata(metadata).build())
while(true) {
val size = inputStream.read(chunk)
if(size <= 0) break
val fileChunk = FileChunk.newBuilder()
.setData(ByteString.copyFrom(chunk, 0, size)).build()
emit(FileUploadRequest.newBuilder().setContent(fileChunk).build())
}
}