diff --git a/workers/datalake/src/blob.ts b/workers/datalake/src/blob.ts index 1c97a1675b..98cbf414e2 100644 --- a/workers/datalake/src/blob.ts +++ b/workers/datalake/src/blob.ts @@ -44,9 +44,13 @@ export async function handleBlobGet ( const { workspace, name } = request const cache = new LoggedCache(caches.default, metrics) - const cached = await cache.match(request) - if (cached !== undefined) { - return cached + + const cacheControl = request.headers.get('Cache-Control') ?? '' + if (!cacheControl.includes('no-cache')) { + const cached = await cache.match(request) + if (cached !== undefined) { + return cached + } } const { bucket } = selectStorage(env, workspace) @@ -75,8 +79,10 @@ export async function handleBlobGet ( const response = new Response(object?.body, { headers, status }) if (response.status === 200) { - const clone = metrics.withSync('response.clone', () => response.clone()) - ctx.waitUntil(cache.put(request, clone)) + if (!cacheControl.includes('no-store')) { + const clone = metrics.withSync('response.clone', () => response.clone()) + ctx.waitUntil(cache.put(request, clone)) + } } return response diff --git a/workers/datalake/src/db.ts b/workers/datalake/src/db.ts index 8af838fdb9..91e9bfe282 100644 --- a/workers/datalake/src/db.ts +++ b/workers/datalake/src/db.ts @@ -50,12 +50,14 @@ export async function withPostgres ( fn: (db: BlobDB) => Promise ): Promise { const sql = metrics.withSync('db.connect', () => { - return postgres(env.HYPERDRIVE.connectionString, { + return postgres(env.DB_URL, { connection: { application_name: 'datalake' - } + }, + fetch_types: false }) }) + const db = new LoggedDB(new PostgresDB(sql), metrics) try { diff --git a/workers/datalake/worker-configuration.d.ts b/workers/datalake/worker-configuration.d.ts index dfc1e51e8e..532c6991ce 100644 --- a/workers/datalake/worker-configuration.d.ts +++ b/workers/datalake/worker-configuration.d.ts @@ -12,6 +12,7 @@ interface Env { STREAMS_ACCOUNT_ID: string; STREAMS_AUTH_KEY: string; R2_ACCOUNT_ID: string; + DB_URL: string; DATALAKE_APAC_ACCESS_KEY: string; DATALAKE_APAC_SECRET_KEY: string; DATALAKE_APAC_BUCKET_NAME: string;