From 735022909fa7807d3eb8f7a91a911ca578240c98 Mon Sep 17 00:00:00 2001 From: Son Tran-Nguyen Date: Wed, 6 Jun 2012 15:29:10 -0500 Subject: [PATCH] Added support for streaming file down from RackSpace. --- lib/cloudfiles/core.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/cloudfiles/core.js b/lib/cloudfiles/core.js index 524ad3a..7352af5 100644 --- a/lib/cloudfiles/core.js +++ b/lib/cloudfiles/core.js @@ -309,7 +309,16 @@ Cloudfiles.prototype.getFiles = function (container, download, callback) { }); }; -Cloudfiles.prototype.getFile = function (container, filename, callback) { +// +// ### function getFile (container, filename, writableStream, callback) +// #### @container {string} Name of the container to retrieve the file from +// #### @filename {string} Name of the file to retrieve. +// #### @writableStream {Stream} If set, use this writable stream to pipe +// the content of the file instead of using file stream. +// #### @callback {function} Continuation to respond to when complete. +// Retrieve the `file` in the specified `container`. +// +Cloudfiles.prototype.getFile = function (container, filename, writableStream, callback) { var self = this, containerPath = path.join(this.config.cache.path, container), cacheFile = path.join(containerPath, filename), @@ -317,7 +326,12 @@ Cloudfiles.prototype.getFile = function (container, filename, callback) { common.statOrMkdirp(containerPath); - var lstream = fs.createWriteStream(cacheFile), + if ("function" === typeof(writableStream)) { + callback = writableStream; + writableStream = null; + } + + var lstream = writableStream || fs.createWriteStream(cacheFile), rstream, options;