use io.CopyN() instead of io.Copy() to prevent file size over