mirror of
https://github.com/Hestia-Homes/assessment-model.git
synced 2026-06-30 12:55:02 +00:00
add route
This commit is contained in:
parent
2aa56553d3
commit
7a80762b95
1 changed files with 32 additions and 0 deletions
32
src/app/api/sign-s3-url/route.ts
Normal file
32
src/app/api/sign-s3-url/route.ts
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// /app/api/sign-s3-url/route.ts
|
||||
import { NextResponse } from "next/server";
|
||||
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
|
||||
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
||||
|
||||
const s3 = new S3Client({
|
||||
region: process.env.RETROFIT_DATA_DEV_REGION,
|
||||
credentials: {
|
||||
accessKeyId: process.env.RETROFIT_DATA_DEV_ACCESS_KEY!,
|
||||
secretAccessKey: process.env.RETROFIT_DATA_DEV_SECRET_KEY!,
|
||||
},
|
||||
});
|
||||
|
||||
export async function POST(req: Request) {
|
||||
try {
|
||||
const { key } = await req.json(); // key = "path/to/photo.jpg"
|
||||
if (!key) return NextResponse.json({ error: "Missing key" }, { status: 400 });
|
||||
|
||||
const command = new GetObjectCommand({
|
||||
Bucket: process.env.RETROFIT_DATA_DEV_S3_BUCKET_NAME!,
|
||||
Key: key,
|
||||
});
|
||||
|
||||
// URL expires in 30 minutes
|
||||
const signedUrl = await getSignedUrl(s3, command, { expiresIn: 1800 });
|
||||
|
||||
return NextResponse.json({ url: signedUrl });
|
||||
} catch (error) {
|
||||
console.error("Error generating signed URL:", error);
|
||||
return NextResponse.json({ error: "Failed to sign URL" }, { status: 500 });
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue