Skip to content

Commit fd06acc

Browse files
authored
Merge pull request #61 from supabase/fix/499-errors
Fix: 499 errors
2 parents 4dcb7a9 + 32e8335 commit fd06acc

File tree

3 files changed

+24
-13
lines changed

3 files changed

+24
-13
lines changed

src/backend/s3.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
S3Client,
88
S3ClientConfig,
99
} from '@aws-sdk/client-s3'
10+
import https from 'https'
1011
import { Upload } from '@aws-sdk/lib-storage'
1112
import { NodeHttpHandler } from '@aws-sdk/node-http-handler'
1213
import { ObjectMetadata, ObjectResponse } from '../types/types'
@@ -16,11 +17,16 @@ export class S3Backend implements GenericStorageBackend {
1617
client: S3Client
1718

1819
constructor(region: string, endpoint?: string | undefined) {
20+
const agent = new https.Agent({
21+
maxSockets: 50,
22+
keepAlive: true,
23+
})
1924
const params: S3ClientConfig = {
2025
region,
2126
runtime: 'node',
2227
requestHandler: new NodeHttpHandler({
23-
socketTimeout: 300000,
28+
httpsAgent: agent,
29+
socketTimeout: 3000,
2430
}),
2531
}
2632
if (endpoint) {
@@ -36,7 +42,6 @@ export class S3Backend implements GenericStorageBackend {
3642
Range: range,
3743
})
3844
const data = await this.client.send(command)
39-
data.Body
4045
return {
4146
metadata: {
4247
cacheControl: data.CacheControl,

src/routes/object/getObject.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,18 +74,23 @@ async function requestHandler(
7474
// send the object from s3
7575
const s3Key = `${projectRef}/${bucketName}/${objectName}`
7676
request.log.info(s3Key)
77-
const data = await storageBackend.getObject(globalS3Bucket, s3Key, range)
77+
try {
78+
const data = await storageBackend.getObject(globalS3Bucket, s3Key, range)
7879

79-
response
80-
.status(data.metadata.httpStatusCode ?? 200)
81-
.header('Content-Type', normalizeContentType(data.metadata.mimetype))
82-
.header('Cache-Control', data.metadata.cacheControl)
83-
.header('ETag', data.metadata.eTag)
84-
.header('Last-Modified', data.metadata.lastModified)
85-
if (data.metadata.contentRange) {
86-
response.header('Content-Range', data.metadata.contentRange)
80+
response
81+
.status(data.metadata.httpStatusCode ?? 200)
82+
.header('Content-Type', normalizeContentType(data.metadata.mimetype))
83+
.header('Cache-Control', data.metadata.cacheControl)
84+
.header('ETag', data.metadata.eTag)
85+
.header('Last-Modified', data.metadata.lastModified)
86+
if (data.metadata.contentRange) {
87+
response.header('Content-Range', data.metadata.contentRange)
88+
}
89+
return response.send(data.body)
90+
} catch (err) {
91+
request.log.error(err)
92+
return response.status(400).send(createResponse(err.message, '400', err.name))
8793
}
88-
return response.send(data.body)
8994
}
9095

9196
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types

src/routes/object/getPublicObject.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,13 @@ export default async function routes(fastify: FastifyInstance) {
8686
}
8787
return response.send(data.body)
8888
} catch (err) {
89+
request.log.error(err)
8990
if (err.$metadata?.httpStatusCode === 404) {
9091
return response.status(404).send()
9192
} else {
9293
return response.status(400).send({
9394
message: err.message,
94-
statusCode: err.$metadata?.httpStatusCode,
95+
statusCode: '400',
9596
error: err.message,
9697
})
9798
}

0 commit comments

Comments
 (0)