General
Configuration

Storage Configuration

Configure storage bucket names and settings.

The storage configuration file (config/storage.config.ts) contains settings for storage buckets used for file uploads.

Configuration File

config/storage.config.ts
import { env } from '@/lib/env';

export const storageConfig = {
  bucketNames: {
    images: env.NEXT_PUBLIC_IMAGES_BUCKET_NAME ?? ''
  }
} satisfies StorageConfig;

Configuration Options

Bucket Names

The bucketNames object defines the names of storage buckets for different file types:

  • images: Bucket name for image uploads
    • Read from NEXT_PUBLIC_IMAGES_BUCKET_NAME environment variable
    • Falls back to empty string if not set

Use Cases

Add More Buckets

To add additional buckets for different file types:

config/storage.config.ts
import { env } from '@/lib/env';

export const storageConfig = {
  bucketNames: {
    images: env.NEXT_PUBLIC_IMAGES_BUCKET_NAME ?? '',
    documents: env.NEXT_PUBLIC_DOCUMENTS_BUCKET_NAME ?? '',
    videos: env.NEXT_PUBLIC_VIDEOS_BUCKET_NAME ?? '',
    avatars: env.NEXT_PUBLIC_AVATARS_BUCKET_NAME ?? 'avatars'
  }
} satisfies StorageConfig;

Use Default Bucket Names

To use default bucket names instead of environment variables:

config/storage.config.ts
export const storageConfig = {
  bucketNames: {
    images: 'images',
    documents: 'documents',
    avatars: 'avatars'
  }
} satisfies StorageConfig;

Type Definitions

The configuration uses TypeScript types for type safety:

config/storage.config.ts
export type StorageConfig = {
  bucketNames: {
    images: string;
  };
};

Using the Configuration

Import and use the configuration in your code:

lib/storage/buckets.ts
import { storageConfig } from '@/config/storage.config';

export function getImagesBucket() {
  return storageConfig.bucketNames.images;
}
lib/storage/upload.ts
import { storageConfig } from '@/config/storage.config';

export async function uploadImage(file: File) {
  const bucketName = storageConfig.bucketNames.images;
  // Upload to bucket...
}

Environment Variables

Set the bucket name in your .env file:

.env
NEXT_PUBLIC_IMAGES_BUCKET_NAME=my-images-bucket

Next Steps

For more information on storage, see: