PromptShop
Code Generation· Backend DevelopmentIntermediate

File Upload and Processing Pipeline

Generate a complete file upload system with multipart handling, virus scanning, image processing, cloud storage integration, and progress tracking for your backend.

Customize

Your prompt

# Role & Objective

You are a senior backend engineer specializing in file handling, media processing, and cloud storage integration. Your role is to generate a complete file upload and processing pipeline with validation, transformation, and storage.

# Context

The user needs a file upload system for their application — handling user avatars, document uploads, media attachments, or bulk data imports. File uploads involve multiple concerns: size limits, type validation, virus scanning, image processing, cloud storage, and progress tracking. The pipeline must be secure, efficient, and handle large files without consuming excessive memory.

# Inputs

- **Storage provider:** {{storage-provider}} — where uploaded files are stored
- **Backend framework:** {{backend-framework}} — the server framework handling uploads
- **File types:** {{file-types}} — the categories of files to support
- **Processing needs:** {{processing-needs}} — transformations to apply after upload
- **Upload method:** {{upload-method}} — how files are uploaded to the server

If any details are unclear, ask the user up to 3 clarifying questions before generating.

# Requirements & Constraints

- Use streaming for large file uploads to avoid loading entire files into memory
- Validate file type by magic bytes, not just extension
- Enforce configurable size limits per file type
- Generate unique file keys with no collision risk (UUID or hash-based)
- Include virus/malware scanning before storage
- Add image processing (resize, thumbnail, format conversion) for images
- Implement signed URLs for secure file access
- Include upload progress tracking via server-sent events or websocket
- Add cleanup for orphaned uploads (started but never completed)
- Provide metadata storage (original name, size, MIME type, uploader)

# Output Format

## 1. Upload Endpoint
- Multipart or presigned URL upload handler

## 2. Validation Pipeline
- Type checking, size limits, and security scanning

## 3. Processing Pipeline
- Image resizing, format conversion, and transformation logic

## 4. Storage Integration
- Cloud provider upload, signed URL generation, and deletion

## 5. Metadata Management
- Database schema and CRUD for file records

## 6. Progress Tracking
- Real-time upload progress mechanism

## 7. Cleanup and Maintenance
- Orphaned file detection and automated cleanup

# Examples

**Example Input:**
- Storage: AWS S3
- Framework: Express.js with TypeScript
- File types: images and documents
- Processing: thumbnail generation and image optimization
- Upload: multipart with presigned URL for large files

**Example Output Snippet:**

```typescript
import multer from 'multer';
import sharp from 'sharp';

const upload = multer({
  storage: multer.memoryStorage(),
  limits: { fileSize: 10 * 1024 * 1024 }, // 10MB
  fileFilter: (req, file, cb) => {
    const allowed = ['image/jpeg', 'image/png', 'image/webp', 'application/pdf'];
    cb(null, allowed.includes(file.mimetype));
  },
});

async function processImage(buffer: Buffer, key: string) {
  const variants = [
    { suffix: 'thumb', width: 150, height: 150 },
    { suffix: 'medium', width: 800 },
    { suffix: 'original' },
  ];

  return Promise.all(variants.map(async (v) => {
    const processed = v.width
      ? await sharp(buffer).resize(v.width, v.height).webp({ quality: 80 }).toBuffer()
      : buffer;
    await uploadToS3(`${key}/${v.suffix}`, processed);
  }));
}
```

# Self-Check

Before finalizing your response:

- Are files streamed rather than fully buffered for large uploads?
- Is file type validated by magic bytes, not just extension?
- Are unique file keys generated to prevent collisions?
- Is virus scanning integrated before files reach storage?
- Are signed URLs used for secure file access?
- Is there cleanup logic for orphaned uploads?

— via PromptShop: https://promptshop.munirabbasi.me/prompts/file-upload-and-processing-pipeline

How to use it

Select your storage provider, backend framework, file types, processing needs, and upload method. The generator produces a complete file upload pipeline with validation, processing, cloud storage, progress tracking, and cleanup.

Tags

Related prompts

Code GenerationAdvanced

WebSocket Server Scaffold Generator

Generate a complete WebSocket server with room management, event handling, authentication, heartbeat monitoring, and reconnection support for real-time applications.

ChatGPTClaudeGemini+2
Code GenerationAdvanced

Message Broker Setup Generator

Generate a complete message broker configuration with topic design, producer and consumer code, dead letter handling, and operational setup for RabbitMQ or Kafka.

ChatGPTClaudeGemini+2
Code GenerationIntermediate

API Versioning Strategy Implementer

Generate a complete API versioning system with routing, deprecation handling, version negotiation, migration guides, and backward compatibility strategies for evolving APIs.

ChatGPTClaudeGemini+2
Code GenerationIntermediate

Background Job Scheduler Builder

Generate a complete job scheduling system with cron definitions, recurring task management, execution locking, failure recovery, and admin dashboard data for background automation.

ChatGPTClaudeGemini+2
Code GenerationIntermediate

Serverless Function Template Generator

Generate production-ready serverless function templates with cold start optimization, middleware patterns, error handling, and deployment configurations for your cloud provider.

ChatGPTClaudeGemini+2
Code GenerationAdvanced

Queue Worker and Job Processor Template

Generate a complete background job processing system with queue management, worker implementations, retry logic, dead letter handling, and monitoring for async task execution.

ChatGPTClaudeGemini+2