fix!: add sharp timeout of 10 seconds (#65517)
This PR [configures
sharp](https://sharp.pixelplumbing.com/api-output#timeout) with a
timeout of 10 seconds when optimizing an image.
Anything longer will throw an error which we will catch and [fallback to
serving the unoptimized source
image](c942006d83/packages/next/src/server/image-optimizer.ts (L637)
).
Closes NEXT-3359
This commit is contained in:
parent
b4130cb07a
commit
78507bcf69
1 changed files with 4 additions and 8 deletions
|
@ -437,14 +437,10 @@ export async function optimizeImage({
|
|||
height?: number
|
||||
nextConfigOutput?: 'standalone' | 'export'
|
||||
}): Promise<Buffer> {
|
||||
let optimizedBuffer = buffer
|
||||
|
||||
const sharp = getSharp()
|
||||
const transformer = sharp(buffer, {
|
||||
sequentialRead: true,
|
||||
})
|
||||
|
||||
transformer.rotate()
|
||||
const transformer = sharp(buffer, { sequentialRead: true })
|
||||
.timeout({ seconds: 10 })
|
||||
.rotate()
|
||||
|
||||
if (height) {
|
||||
transformer.resize(width, height)
|
||||
|
@ -468,7 +464,7 @@ export async function optimizeImage({
|
|||
transformer.jpeg({ quality, progressive: true })
|
||||
}
|
||||
|
||||
optimizedBuffer = await transformer.toBuffer()
|
||||
const optimizedBuffer = await transformer.toBuffer()
|
||||
|
||||
return optimizedBuffer
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue