Fix: Implement Cloudflare direct creator upload

This commit is contained in:
gpt-engineer-app[bot]
2025-09-28 15:10:25 +00:00
parent 32a255d247
commit b8f6444c64

View File

@@ -23,18 +23,25 @@ serve(async (req) => {
// Request a direct upload URL from Cloudflare // Request a direct upload URL from Cloudflare
const { metadata = {} } = await req.json().catch(() => ({})) const { metadata = {} } = await req.json().catch(() => ({}))
// Create FormData for the request (Cloudflare API requires multipart/form-data)
const formData = new FormData()
formData.append('requireSignedURLs', 'false')
// Add metadata if provided
if (metadata && Object.keys(metadata).length > 0) {
for (const [key, value] of Object.entries(metadata)) {
formData.append(`metadata.${key}`, String(value))
}
}
const directUploadResponse = await fetch( const directUploadResponse = await fetch(
`https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/images/v2/direct_upload`, `https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/images/v2/direct_upload`,
{ {
method: 'POST', method: 'POST',
headers: { headers: {
'Authorization': `Bearer ${CLOUDFLARE_IMAGES_API_TOKEN}`, 'Authorization': `Bearer ${CLOUDFLARE_IMAGES_API_TOKEN}`,
'Content-Type': 'application/json',
}, },
body: JSON.stringify({ body: formData,
requireSignedURLs: false,
metadata: metadata
}),
} }
) )
@@ -143,7 +150,7 @@ serve(async (req) => {
return new Response( return new Response(
JSON.stringify({ JSON.stringify({
error: 'Internal server error', error: 'Internal server error',
message: error.message message: error instanceof Error ? error.message : 'Unknown error'
}), }),
{ {
status: 500, status: 500,