javascript - 如何轮询签名的网址?
问题描述
我需要使用 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 保护的。因此 url 需要与 aws 生成的表单完全匹配,并且不能附加任何随机信息。
在这种情况下,还有其他推荐的方法来防止损坏的 url 被缓存吗?
解决方案
推荐阅读
- react-native - 单击文本输入后如何禁用表单向上滚动
- while-loop - 在 Julia 中循环更新数组,避免使用全局变量
- javascript - 将对象(数组?)转换为字符串
- typescript - 为什么 date.getHours() 在 firebase 云函数中不起作用
- backup - 为备份设置适当的参数
- amazon-web-services - 允许每个用户只列出 s3 中的一些文件夹
- python - 具有多步用户输入的单元测试
- node.js - Nodemon - 应用程序崩溃 - 在启动前等待文件更改
- java - ZeroMQ 运行服务器 Java
- c# - 在 VB6 应用程序中使用 C# dll 和 Cefsharp