1

我以多种不同的方式将文件上传到我的 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,但是我如何遍历节点中的键以查看存储桶中的所有文件?

4

2 回答 2

3

如果您的存储桶变大,最好流式传输这些密钥!查看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);
});
于 2012-10-15T04:24:54.410 回答
2

您可以使用 AwsSum 来完成。它得到积极维护,可以执行亚马逊提供的所有 S3 操作。

在 node-awssum-scripts 存储库中有一个功能齐全的示例,说明您正在寻找什么。它获取前 1000 个键,然后使用 'marker' 参数对操作继续执行新请求,直到没有更多键为止,因此您可能需要查看:

如果您需要任何帮助,请在 GitHub 上给我留言。免责声明:我是 Chilts,Awssum 的作者。:)

于 2012-05-07T07:14:31.227 回答