Fix client-to-server transfer by base64 encoding binary buffer

This commit is contained in:
2020-11-26 22:47:28 -06:00
parent abe4c38571
commit 8ea69dd006
3 changed files with 19 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ const StreamTake = require('./ws/StreamTake')
const Socket = require('./ws/Socket')
const { Unit } = require('libflitter')
const { NodeDescriptorType } = require('./enum')
const CombinedStream = require('combined-stream')
const { Buffer } = require('buffer')
const { Readable } = require('stream')
@@ -86,10 +87,12 @@ class ServerUnit extends Unit {
}
}
console.log('write stream', stream)
console.log('write data', { placeholder, position, length })
const encoded_buffer = await this._bufferStream(stream)
const decoded_buffer = new Buffer(encoded_buffer.toString(), 'base64')
stream.pipe(fs.createWriteStream(placeholder.path, { flags: 'r+', start: position }))
const combined_stream = CombinedStream.create()
combined_stream.append(decoded_buffer)
combined_stream.pipe(fs.createWriteStream(placeholder.path, { flags: 'r+', start: position }))
}
_bufferStream(stream) {