🔥

Cloudflareのキャッシュをpurgeする(直にREST APIで)

2022/11/06に公開

Node向けAPIクライアントもあるのだけれど、ちょちょっと削除だけしたいのでちゃちゃっと手元のHTTPクライアントで叩きたい場合。(この例ではaxiosを使っている)

// @see https://api.cloudflare.com/#zone-purge-files-by-url
type CloudFlareResponse = {
  errors: unknown
  messages: unknown
  result: { id: string }
  success: boolean
}

export const purgeCloudflare = async (url: string) => {
  try {
    return axios.delete<CloudFlareResponse>(
      `https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/purge_cache`,
      {
        headers: {
          'Content-Type': 'application/json',
          'X-Auth-Key': CLOUDFLARE_AUTH_KEY,
          'X-Auth-Email': CLOUDFLARE_AUTH_EMAIL,
        },
        data: {
          files: [url],
        },
      }
    )
  } catch (e) {
    console.error(JSON.stringify(e))
    throw e
  }
}

なお実際に削除が完了するまでには最大で30秒程度かかると思われる。またurl指定ではなく全てのキャッシュを丸ごと削除したければ

data: {
  purge_everything: true,
}

filesではなくpurge_everythingを指定する

References

Discussion