🎉 Next S3 Uploader is now in beta! Please report any bugs or issues on GitHub.
Next.js
App Directory
Backend

API Route (Next.js App Dir Route Handler)

Use the createS3Client and generatePresignedUrls functions to create an API route for handling pre-signed URLs:

app/api/s3upload.js
import { createS3Client, generatePresignedUrls } from "next-s3-uploader";
 
export async function POST(req) {
  try {
    const { keys } = await req.json();
 
    // Configure S3 client
    const s3Client = createS3Client({
      provider: "aws",
      region: "us-east-1",
      credentials: {
        accessKeyId: "YOUR_ACCESS_KEY_ID",
        secretAccessKey: "YOUR_SECRET_ACCESS_KEY",
      },
    });
 
    // Generate pre-signed URLs
    const bucket = "your-bucket-name";
    const prefix = `userId/images/`;
    const urls = await generatePresignedUrls(s3Client, keys, bucket, prefix);
 
    return new Response(JSON.stringify(urls), { status: 200 });
  } catch (error) {
    console.error("Error processing the request:", error);
    return new Response("Internal Server Error", { status: 500 });
  }
}