// inside a worker, Hono + oRPC. input.file = File
const fileBuffer = await input.file.arrayBuffer();
const transformedImage = await context.env.IMAGES.input(
arrayBufferToReadableStream(fileBuffer),
)
.transform({
width: 256,
height: 256,
fit: "cover",
})
.output(input.output ?? { format: "image/avif" });
const fileName = `${Date.now()}.avif`;
const object = await context.env.BUCKET.put(
fileName,
await transformedImage.response().arrayBuffer(),
{
httpMetadata: {
contentType: transformedImage.contentType(),
},
},
);
return `${context.env.BUCKET_PUBLIC_URL}/${object.key}`;
// inside a worker, Hono + oRPC. input.file = File
const fileBuffer = await input.file.arrayBuffer();
const transformedImage = await context.env.IMAGES.input(
arrayBufferToReadableStream(fileBuffer),
)
.transform({
width: 256,
height: 256,
fit: "cover",
})
.output(input.output ?? { format: "image/avif" });
const fileName = `${Date.now()}.avif`;
const object = await context.env.BUCKET.put(
fileName,
await transformedImage.response().arrayBuffer(),
{
httpMetadata: {
contentType: transformedImage.contentType(),
},
},
);
return `${context.env.BUCKET_PUBLIC_URL}/${object.key}`;