Skip to content

Instantly share code, notes, and snippets.

@tmcw
Created December 10, 2010 17:39
Show Gist options
  • Save tmcw/736504 to your computer and use it in GitHub Desktop.
Save tmcw/736504 to your computer and use it in GitHub Desktop.
var listbucket = function(client, prefix, n, callback, marker) {
var step = 100;
if (n > 0) {
util.debug(n + ' records to process');
var params = {
'max-keys': step
};
prefix && (params.prefix = prefix);
marker && (params.marker = marker);
client.get('?' + querystring.stringify(params), {
}).on('response', function(res) {
res.setEncoding('utf8');
var listing = '';
res.on('data', function(chunk) {
listing += chunk;
})
.on('end', function() {
var parser = new xml2js.Parser();
parser.addListener('end', function(result) {
callback(result.Contents);
if (result.IsTruncated.text == 'true') {
listbucket(client,
prefix,
n - step,
callback,
result
.Contents[result.Contents.length - 1]
.Key.text);
}
});
parser.parseString(listing);
});
}).end();
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment