上文有说到我们开发了定时删除阿里云oss的功能,但是一次只能删除10条。
本文我们做到一次删除全部过期的文件。
实现:使用while循环,在循环里获取是否还有已过期的,没有就break掉,有就走删除逻辑。
开始代码部分:

逻辑还是比较简单的,一个while循环,每次查找20条已过期的数据,如果没有则结束while循环,存在则进入for循环删除,分别记录删除成功、失败的数量,但是有个问题,如果一直删除失败,那么就会一直陷入死循环了。
超时了:

我们把这个云函数的运行超时设置长一点:

现在的问题是,我设置了很长的超时时间,但是还是会很快就超时了:

客户度调用也是超时:

网上也没有太好的资料。
重新整理一下流程,我是在一个云对象里调用另一个云对象的方法。
我在删除的代码里加了一个try catch:

捕获到的异常为:

说delete_file方法没有在引用的云对象里,但是这个云对象我是已经上传部署了的。
重新部署一下aliyun-api这个云对象,因为这个云对象依赖了两个包,所以会部署时间长点。

可以了,可以了,问题解决!
问题的根源可能是因为云对象没有部署完整导致的。
下一期文章我将继续完善两个通道之间的切换问题,以及页面的控制可以通过配置更改,如:两个通道的启用、通道二的风格选项的启用、每个通道的分享标题和图片等等配置。
小程序名:《一方云知》。欢迎大家使用,人像动漫化接口是免费使用的。
这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。
想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。
感谢你的阅读与支持,期待在未来的文章中与你再次相遇!