Cf-cache-status: MISS due to redirect?

I’m not sure what I’m doing wrong. I wrote a simple proxy for a google sheets csv.

When I fetch the origin, I first receive a 307:

< HTTP/2 307
...
< cache-control: no-cache, no-store, max-age=0, must-revalidate
< location: ...

then following the redirect I receive a 200:

< HTTP/2 200
...
< content-type: text/csv
< cache-control: no-cache, no-store, max-age=0, must-revalidate

Is this redirect causing the fetch to not cache? Full worker code is below.

export default {
	async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
		const res = await fetch(
			`https://docs.google.com/spreadsheets/d/${env.GSHEET_ID}/export?format=csv&gid=${env.GSHEET_GID}`,
			{
				cf: { cacheEverything: true, cacheTtl: 600 },
			}
		);
		return new Response(res.body, {
			status: res.status,
			statusText: res.statusText,
			headers: {
				'last-modified': res.headers.get('last-modified') ?? '',
				'content-type': 'text/csv',
				'cache-control': 'public, max-age=600',
				'cf-cache-status': res.headers.get('cf-cache-status') ?? '',
				'cf-ray': res.headers.get('cf-ray') ?? '',
				'access-control-allow-origin': '*',
				'access-control-allow-methods': 'GET',
				'x-content-type-options': 'nosniff',
			},
		});
	},
};

(to be clear, I’m seeing the cf-cache-status: MISS header when I curl my worker)