删除S3存储桶中的大量对象卡住了。为什么?

时间:2011-09-15 05:00:05

标签: php amazon-web-services amazon-s3

我正在使用undesigned API来删除S3对象。我可以删除最多20到30个对象。我去批量删除超过100或200它没有响应。

我不想删除S3存储桶。对于80到100个对象我得到的结果之后我没有在php中得到结果。对象不会从S3中删除。我不知道为什么?

修改

我实施了Theodore R. Smith的想法.Elachys也给出了同样的想法。但是theodore有点简洁。请看下面的结果。

没用。我把文件写在我的最后用于跟踪状态。我选择了53个文件并开始删除。但它在40个对象之后停止。然后用0kb的105个文件进行调整,它停在30个Assets.In文件中写我得到105对象删除的值 - S3 deleted Started09:02:34和第30个删除在Completed S3 Delete 09:02:44结束。然后第31个S3删除从Started S3 Delete 09:02:44开始但是没有得到S3的结果。

我错过的任何事情请告诉我。我现在没有得到结果。

你有什么想法吗?

更新

解决方案:

最后通过使用以下API修复了我的问题

https://raw.github.com/tylerhall/php-aws/master/class.s3.php

现在工作正常。删除超过100个对象在几秒钟内取得了良好的效果。使用S3fox也检查。完美!

感谢大家回答这个问题

2 个答案:

答案 0 :(得分:0)

听起来好像脚本可能会超时或者没有以某种方式完成执行。

回显脚本底部的内容,看看它是否显示。

如果不是超时问题,请检查您的php错误日志。

在一定程度上,它可能是某种“锤子保护”。出于调试目的,尝试在每次删除之间添加sleep(1);,然后查看它是否有效。

答案 1 :(得分:0)

试试这个:

在代码顶部放置:

set_time_limit(0);

然后将你的循环放在你做请求的地方,并在每50次后睡觉(5)。使用代码if ($requestCount % 50 === 0) { sleep(5); }

请进行这两项更改并报告。