Как опросить подписанный URL? - PullRequest
2 голосов
/ 13 мая 2019

Мне нужно опросить изображение с помощью 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, ответ кэшируется, и последующие запросы не отправляются каждый раз. Так что может пройти некоторое время, прежде чем это сработает.

Стандартное решение этой проблемы - просто добавить временную метку к строке запроса. Однако, вот моя проблема: эти изображения защищены с помощью подписанных URL-адресов. Таким образом, URL должен точно соответствовать форме, сгенерированной aws, и к нему не может быть добавлена ​​произвольная информация.

Существуют ли другие рекомендуемые способы предотвращения кэширования сломанного URL-адреса в этой ситуации?

...