Initial Commit

This commit is contained in:
Anders Böttcher
2026-05-11 23:39:16 +02:00
parent 9dde8d8804
commit 50566f2a22
38 changed files with 5840 additions and 1015 deletions
@@ -0,0 +1,39 @@
import { NextResponse } from 'next/server'
import { getFile, getUploadPath } from '@/lib/store'
import fs from 'fs'
export async function GET(
_request: Request,
{ params }: { params: Promise<{ token: string }> },
) {
const { token } = await params
const record = await getFile(token)
if (!record) {
return NextResponse.json({ error: 'Not found' }, { status: 404 })
}
const filePath = getUploadPath(token, record.originalName)
if (!fs.existsSync(filePath)) {
return NextResponse.json({ error: 'File missing on disk' }, { status: 404 })
}
const stream = fs.createReadStream(filePath)
const webStream = new ReadableStream({
start(controller) {
stream.on('data', (chunk) => controller.enqueue(chunk))
stream.on('end', () => controller.close())
stream.on('error', (err) => controller.error(err))
},
cancel() {
stream.destroy()
},
})
return new Response(webStream, {
headers: {
'Content-Type': 'application/octet-stream',
'Content-Disposition': `attachment; filename="${record.originalName}"`,
'Content-Length': String(record.size),
},
})
}
+14
View File
@@ -0,0 +1,14 @@
import { NextResponse } from 'next/server'
import { getFile } from '@/lib/store'
export async function GET(
_request: Request,
{ params }: { params: Promise<{ token: string }> },
) {
const { token } = await params
const record = await getFile(token)
if (!record) {
return NextResponse.json({ error: 'Not found' }, { status: 404 })
}
return NextResponse.json(record)
}
+7
View File
@@ -0,0 +1,7 @@
import { NextResponse } from 'next/server'
import { readMeta } from '@/lib/store'
export async function GET() {
const records = await readMeta()
return NextResponse.json(records)
}