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

发布于 2024-12-04 13:18:43 字数 1024 浏览 0 评论 0原文

我正在使用 unDesign API 来删除 S3对象。它对我来说可以很好地删除最多 20 到 30 个对象。如果我进行批量删除,例如超过 100 或 200 个,它没有响应。

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

编辑

我实现了 Theodore R. Smith 的想法。Elachys 也给出了相同的想法。但是 theodore 有点简短。请参阅下面的结果。

没用。我将文件写入放在最后以跟踪状态。我选择了 53 个文件并开始删除。但它在 40 个对象后停止。然后用 105 个 0kb 文件开始,它停止在 30 个资产。在文件写入中我是获取 105 个对象删除的值 - S3 已删除 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 检查过。完美!

谢谢大家回答问题

I am using the undesigned API for deleting the S3 objects.It working fine for me to delete upto 20 to 30 objects.IF I go for bulk delete like more than 100 or 200 its not responding.

I dont want to delete the S3 bucket.For 80 to 100 objects I am getting the result after that I am not getting the result in the php.The objects are not deleted from S3.I dont know why?

Edit

I implemented the Theodore R. Smith idea.Elachys also given the same idea.But theodore is little bit breif.See my result below.

No use.I put the file write in my end for tracking the status.I selected 53 file and start the delete.But it stopped after 40 objects.Then sarted with 0kb files of 105 it stopped at 30 Assets.In file write I am getting the values for 105 object delete -- S3 deleted Started09:02:34 and the 30th delete ends at Completed S3 Delete 09:02:44.Then 31st S3 delete started at Started S3 Delete 09:02:44 But didnt get the result from S3.

Anything I missed out please let me know.I didn't get the result up-to now.

Do you have any ideas?

Update

Solution:

Finally Fixed my issue by using the follwing API

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

Now is working fine.Deleted more than 100 objects got the good result with in a seconds.Checked using S3fox also.Perfect!

Thank you everyone for answering the question

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

﹉夏雨初晴づ 2024-12-11 13:18:43

听起来脚本可能超时或未以某种方式完成执行。

echo 脚本底部的某些内容并查看它是否显示。

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

总的来说,它可能是某种“锤子保护”。出于调试目的,请尝试在每次删除之间放置 sleep(1); 并查看它是否有效。

It sounds like the script might be timing out or not finishing execution in some way.

echo something at the bottom of your script and see if it displays.

If it's not a timeout issue, check your php error logs.

At a stretch, it could be some sort of "hammer protection". For debug purposes, try putting a sleep(1); between each delete and see if it works then.

弃爱 2024-12-11 13:18:43

试试这个:

在代码顶部写下:

set_time_limit(0);

然后在循环中进行请求,并在每 50 次后睡眠(5)。使用代码 if ($requestCount % 50 === 0) { sleep(5 ); }

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

Try this:

At the top of your code put this:

set_time_limit(0);

Then take your loop where you do requests and sleep(5) after every 50. use the code if ($requestCount % 50 === 0) { sleep(5); }

Please make these two changes and report back.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文