我正在使用图像处理API。 (Blitline)
根据其性质,图像处理需要一段时间才能完成。比方说3-6秒。
提交作业后,API会立即返回我处理过的图片的未来网址,但是为了3-6秒,该网址将返回404,因为图片尚未完成处理。
一旦作业完成,Blitline服务就会将Postback发送到我服务器上的PHP脚本,告诉我它已经完成。
此时,我想向用户显示已处理的图像。
是否有技术会在回发进入时在用户浏览器中加载图像?
我知道可以使用Javascript轮询完成。例如。如果回发已经进入,则每2秒检查一次。
但我想知道是否有更现代的方法来做到这一点?
答案 0 :(得分:1)
必须处理的另一个问题是S3延迟。仅仅因为图像被上传到S3并且S3已经回复它得到它,并不意味着图像将立即公开。虽然它通常在几毫秒内可用,但有时可延长到几秒钟。
由于您有URL,因此您只需轮询S3以获取图像。这是一个例子:
https://coderwall.com/p/hy_qjw
此示例尝试从S3加载隐藏的图像。如果成功,它会在几秒钟内再次尝试(您可以调整setTimeout)。这可以用来等待Blitline完成,或者等待S3使图像可用。