Как заставить объекты потокового изображения кэшироваться с помощью Squid Forward Proxy

Я получаю доступ к изображениям, хранящимся в хранилище, например AWS S3 или GCS.

Я использую библиотеку узлов Got для получения изображения и передаю ответ в процессор изображений.

Я использую Got с туннельным агентом, чтобы он использовал мой прокси-сервер Squid Forward. Я использую Squid, так как хочу кэшировать изображения, чтобы мне не всегда приходилось обращаться к S3 для получения изображения.

Однако мои изображения не кэшируются. И каждый вызов получения изображения через Squid приводит к следующему сообщению журнала:

      1612789358.530   3100 172.22.0.3 TCP_TUNNEL/200 2296639 CONNECT storage.googleapis.com:80 - HIER_DIRECT/172.217.170.80 -

Я добавилrefresh_patternдиректива для принудительного кэширования.

      refresh_pattern . 0 100% 525600 override-expire override-lastmod ignore-reload ignore-no-cache ignore-no-store reload-into-ims ignore-must-revalidate

Это должно кэшировать все на год.

Соответствующий javascript таков (если это имеет значение)

      let stream = await got.stream(sourceUrl, {
  agent: {
    http: tunnel.httpOverHttp({
      proxy: {
        host: "localhost",
        port: "3128",
      },
    }),
  },
});

У меня нет опыта работы с Squid — я использую версию 4.x.

Может ли быть так, что, поскольку я передаю ответы от S3, Squid не может кэшировать ответ после потоковой передачи всего ответа изображения? Или в моем файле squid.conf может быть необходима определенная директива кэша.

0 ответов

Другие вопросы по тегам