Skip to content

Commit de41f9e

Browse files
fix: internal vs external metadata headers (#92)
Co-authored-by: Eduardo Bouças <[email protected]>
1 parent 03a1c05 commit de41f9e

File tree

4 files changed

+9
-5
lines changed

4 files changed

+9
-5
lines changed

src/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export class Client {
5959
}
6060

6161
if (encodedMetadata) {
62-
headers[METADATA_HEADER_EXTERNAL] = encodedMetadata
62+
headers[METADATA_HEADER_INTERNAL] = encodedMetadata
6363
}
6464

6565
const path = key ? `/${this.siteID}/${storeName}/${key}` : `/${this.siteID}/${storeName}`

src/main.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1007,7 +1007,7 @@ describe('setJSON', () => {
10071007
headers: {
10081008
authorization: `Bearer ${edgeToken}`,
10091009
'cache-control': 'max-age=0, stale-while-revalidate=60',
1010-
'netlify-blobs-metadata': encodedMetadata,
1010+
'x-amz-meta-user': encodedMetadata,
10111011
},
10121012
response: new Response(null),
10131013
url: `${edgeURL}/${siteID}/production/${key}`,

src/metadata.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,12 @@ export const getMetadataFromResponse = (response: Response) => {
3939
return {}
4040
}
4141

42+
// If metadata is coming from the API, it will be under the external header.
43+
// If it's coming from the edge, it will be under the internal header.
44+
const value = response.headers.get(METADATA_HEADER_EXTERNAL) || response.headers.get(METADATA_HEADER_INTERNAL)
45+
4246
try {
43-
return decodeMetadata(response.headers.get(METADATA_HEADER_INTERNAL))
47+
return decodeMetadata(value)
4448
} catch {
4549
throw new Error(
4650
'An internal error occurred while trying to retrieve the metadata for an entry. Please try updating to the latest version of the Netlify Blobs client.',

src/server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { tmpdir } from 'node:os'
44
import { dirname, join, relative, resolve, sep } from 'node:path'
55

66
import { ListResponse } from './backend/list.ts'
7-
import { decodeMetadata, encodeMetadata, METADATA_HEADER_EXTERNAL, METADATA_HEADER_INTERNAL } from './metadata.ts'
7+
import { decodeMetadata, encodeMetadata, METADATA_HEADER_INTERNAL } from './metadata.ts'
88
import { isNodeError, Logger } from './util.ts'
99

1010
interface BlobsServerOptions {
@@ -163,7 +163,7 @@ export class BlobsServer {
163163
return this.sendResponse(req, res, 400)
164164
}
165165

166-
const metadataHeader = req.headers[METADATA_HEADER_EXTERNAL]
166+
const metadataHeader = req.headers[METADATA_HEADER_INTERNAL]
167167
const metadata = decodeMetadata(Array.isArray(metadataHeader) ? metadataHeader[0] : metadataHeader ?? null)
168168

169169
try {

0 commit comments

Comments
 (0)