add: [filerwatcher] fix max buffer length bug
parent
cdc6b5da52
commit
2fdb6bbdd5
|
@ -94,26 +94,27 @@ func (fw *FileWatcherReader) Read(p []byte) (n int, err error) {
|
||||||
// base64 stream encoder
|
// base64 stream encoder
|
||||||
b64buffer := new(bytes.Buffer)
|
b64buffer := new(bytes.Buffer)
|
||||||
b64encoder := base64.NewEncoder(base64.StdEncoding, b64buffer)
|
b64encoder := base64.NewEncoder(base64.StdEncoding, b64buffer)
|
||||||
// Read the file using p's length to get he correct size automatically
|
// max buffer size is then 3072 = 4096/4*3
|
||||||
buf := make([]byte, len(p))
|
buf := make([]byte, 3072)
|
||||||
n, err = fw.curfile.Read(buf)
|
bytesread, err := fw.curfile.Read(buf)
|
||||||
// buf is the input
|
// buf is the input
|
||||||
b64encoder.Write(buf)
|
b64encoder.Write(buf[:bytesread])
|
||||||
// Close the encoder to flush partially written blocks
|
// Close the encoder to flush partially written blocks
|
||||||
b64encoder.Close()
|
b64encoder.Close()
|
||||||
|
log.Println(b64buffer)
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
fw.insertsep = true
|
fw.insertsep = true
|
||||||
}
|
}
|
||||||
// Copy from b64buffer to p
|
// Copy from b64buffer to p
|
||||||
n, err = b64buffer.Read(p)
|
n, err = b64buffer.Read(p[:len(b64buffer.Bytes())])
|
||||||
// I keep a len(p) buffer size as python knows how to handle the padding
|
log.Println("len b64 buffer: ", len(b64buffer.Bytes()))
|
||||||
} else {
|
} else {
|
||||||
n, err = fw.curfile.Read(p)
|
n, err = fw.curfile.Read(p)
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
fw.insertsep = true
|
fw.insertsep = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//log.Println("nread: ", n)
|
log.Println("nread: ", n)
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue