zip proxy support

This commit is contained in:
skidoodle 2023-12-13 11:29:31 +01:00
parent 15c1caf41f
commit 8ddc6cb182
2 changed files with 9 additions and 7 deletions

View file

@ -74,9 +74,9 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
case 'inf': case 'inf':
case 'infoism': case 'infoism':
case 'digkult': case 'digkult':
flZipUrl = `${baseUrl}${prefix}${forras}_${shortev}${honap}_${feladat}.zip` flZipUrl = `${proxiedUrl}${prefix}${forras}_${shortev}${honap}_${feladat}.zip`
flPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${feladat}.pdf` flPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${feladat}.pdf`
utZipUrl = `${baseUrl}${prefix}${megoldas}_${shortev}${honap}_${utmutato}.zip` utZipUrl = `${proxiedUrl}${prefix}${megoldas}_${shortev}${honap}_${utmutato}.zip`
utPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${utmutato}.pdf` utPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${utmutato}.pdf`
break break
default: default:

View file

@ -21,16 +21,18 @@ export default async function handler(
try { try {
const response = await fetch(link, { method: 'GET' }) const response = await fetch(link, { method: 'GET' })
const contentType = response.headers.get('content-type')
if (response.headers.get('content-type') !== 'application/pdf') { if (contentType) {
return res.status(400).json({ error: 'Érvénytelen link' }) const filename = link.split('/').pop() ?? 'download'
res.setHeader('Content-Disposition', `attachment; filename="${filename}"`)
res.setHeader('Content-Type', contentType)
} }
if (response.ok) { if (response.ok) {
res.setHeader('Content-Type', 'application/pdf')
const arrayBuffer: ArrayBuffer = await response.arrayBuffer() const arrayBuffer: ArrayBuffer = await response.arrayBuffer()
const pdfBuffer: Buffer = Buffer.from(arrayBuffer) const buffer: Buffer = Buffer.from(arrayBuffer)
res.send(pdfBuffer) res.send(buffer)
} else { } else {
res res
.status(response.status) .status(response.status)