使用nodejs和knox如何查看S3 Bucket中的文件

时间:2011-09-29 06:33:50

标签: javascript node.js amazon-s3 boto knox-amazon-s3-client

我以不同的方式将文件上传到我的s3存储桶。

在python中我可以像这样使用boto:

from boto.s3.connection import S3Connection

conn = S3Connection('access-key','secret-access-key')
bucket = conn.get_bucket('bucket')
for key in bucket.list():
    print key.name

在节点中,我使用knox连接到桶以获取URL,但是如何迭代节点中的键以查看我的桶中的所有文件?

2 个答案:

答案 0 :(得分:3)

如果您的水桶变大,最好stream这些钥匙!查看 knox-copy

var knoxCopy = require('knox-copy');

var client = knoxCopy.createClient({
  key: '<api-key-here>',
  secret: '<secret-here>',
  bucket: 'mrbucket'
});

client.streamKeys({
  // omit the prefix to list the whole bucket
  prefix: 'buckets/of/fun' 
}).on('data', function(key) {
  console.log(key);
});

答案 1 :(得分:2)

你可以用AwsSum来做。它得到了积极维护,可以执行亚马逊提供的所有S3操作。

在node-awssum-scripts repo中有一个完整的功能示例,正是您正在寻找的内容。它获得前1000个键,然后使用'marker'参数继续执行新请求,直到没有其他键为止,因此您可能需要查看:

如果您需要任何帮助,请给我一个关于GitHub的喊叫。免责声明:我是小孩,是Awssum的作者。 :)