🔥
Cloudflareのキャッシュをpurgeする(直にREST APIで)
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を指定する
Discussion