mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
refactor(pipe) create: add range
This commit is contained in:
parent
5a085a38d1
commit
598505fa62
1 changed files with 14 additions and 12 deletions
|
|
@ -35,12 +35,19 @@
|
|||
function create(params) {
|
||||
var gzip, read, write, isFsWrite,
|
||||
p = params,
|
||||
func = Util.retExec(p.callback);
|
||||
func = Util.retExec(p.callback),
|
||||
options = {
|
||||
bufferSize: 4 * 1024
|
||||
};
|
||||
|
||||
if (p) {
|
||||
read = p.read || fs.createReadStream(p.from, {
|
||||
bufferSize: 4 * 1024
|
||||
});
|
||||
if (p.range)
|
||||
options = {
|
||||
start : p.range.start,
|
||||
end : p.range.end,
|
||||
};
|
||||
|
||||
read = p.read || fs.createReadStream(p.from, options);
|
||||
|
||||
if (p.write)
|
||||
write = p.write;
|
||||
|
|
@ -63,16 +70,11 @@
|
|||
read.on('error', func);
|
||||
|
||||
Util.ifExec(!isFsWrite, function() {
|
||||
read.on('data', function(data) {
|
||||
write.write(data);
|
||||
read.pipe(write, {
|
||||
end: !p.notEnd
|
||||
});
|
||||
|
||||
read.on('end', function() {
|
||||
if (!p.notEnd)
|
||||
write.end();
|
||||
|
||||
func();
|
||||
});
|
||||
read.on('end', func);
|
||||
}, function(callback) {
|
||||
write.on('open', callback);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue