2012-01-27 204 views
2

我正在使用knox npm模块将文件上传到S3上的存储桶。它效果很好。我不知道如何做的是如何在一次调用中删除存储桶中的所有文件,而不是在此时删除一个文件?使用nodejs knox从s3存储桶中删除所有文件?

任何想法,将有助于...

+1

与nodejs无关,但在S3中,您无法一次删除所有文件。您必须一次删除一个文件/对象,因此必须有一个循环才能删除所有文件/对象。 – rsmoorthy 2012-01-27 17:18:59

+0

@rsmoorthy:这确实是这种情况,但主要通过[Amazon S3 - 多对象删除](http://aws.typepad.com/aws/2011/12/amazon-s3-multi- object-deletion.html)截至2011年12月 - 它仍然一次只限于1000个对象,但无论如何显着改善。 – 2012-01-27 17:35:56

+0

@steffenOpel - 谢谢!我错过了这个消息。是的,这会加快删除。去年,我不得不删除超过10M的物体,并花了数天时间! – rsmoorthy 2012-01-27 17:46:35

回答

1

,在过去这是不可能的,但是,亚马逊终于推出Amazon S3 - Multi-Object Delete在2011年12月:

Amazon S3's新多目标删除给你 通过单个请求从S3存储桶中删除多达1000个对象的能力。像knox

显然,客户端库现在必须加专用支持该API反过来,以及各自的问题确实在诺克斯”问题跟踪已经存在(仍有待今天的),看Multi-Object Delete

因此,你应该监视这个问题和/或参与实施:)


0

我AwsSum库已经可以做到多对象中删除。库中的操作被称为 'DeleteMultipleObjects':

您可以通过NPM安装AwsSum做:

$ NPM安装awssum

这里有一个例子:

希望它顺利,如果您需要任何帮助,请给我留言。 :)

+0

只推荐*你*自己的东西8次你第一天在这里不完全赞赏。请参阅[关于促销的常见问题](http://stackoverflow.com/faq#promotion)。 – 2012-05-05 12:44:59

+0

对不起,我会再阅读一下FAQ。然而,knox是一个不再维护的图书馆,因此人们被抓住了。 AwsSum得到了维护,我试图帮助人们,AWS是我的专长,所以我希望StackOverflow会喜欢这些知识。我道歉,我会停止以这种方式回答问题。 – chilts 2012-05-07 07:26:48

+0

我不是版主,只是在网站评论功能中发现您的帖子的用户。一位在第一天在多个帖子中推荐单件产品的新用户将使垃圾邮件指示灯开始升温。事实上,你提到它是你的项目是好的。而你的答案仍然在这里显示垃圾邮件过滤器没有被触发。只是想让你保持清醒。 – 2012-05-07 09:48:39