如何轮询签名的URL?

时间:2019-05-13 03:05:01

标签: javascript amazon-web-services polling

我需要使用javascript轮询图像,并在找到图像后执行操作。这是我正在使用的代码:

    pollUpload(file) {
        const stopTime = Number(new Date()) + (1000 * 60)
        const check = (resolve, reject) => {
            setTimeout(() => {
                const img = new Image()
                img.onload = resolve
                img.onerror = () => {
                    if (Number(new Date()) < stopTime) check(resolve, reject)
                    else reject(new Error('Timed out'))
                }
                img.src = file
            }, 1000)
        }
        return new Promise(check)           
    },

这可行,但是我遇到了一个问题,即在第一个GET(即404)之后,响应被缓存,并且后续请求没有每次都发送。因此,可能需要一段时间才能生效。

对此的标准解决方案是将时间戳添加到查询字符串。但是,这是我的麻烦:这些图像使用aws签名的URL进行保护。因此,该网址需要与aws生成的形式完全匹配,并且不能在其后附加任何随机信息。

在这种情况下,是否还有其他建议的方法来防止缓存损坏的URL?

0 个答案:

没有答案