Quick Reference
Essential pushduck storage API operations at a glance. Quick examples for file listing, deletion, metadata retrieval, presigned URLs, and error handling patterns.
Storage Operations Overview
Setup
// lib/upload.ts
import { createUploadConfig } from 'pushduck/server'
const { storage } = createUploadConfig()
.provider("cloudflareR2",{
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: 'auto',
endpoint: process.env.AWS_ENDPOINT_URL,
bucket: process.env.S3_BUCKET_NAME,
accountId: process.env.R2_ACCOUNT_ID,
})
.build()
export { storage }
Essential Operations
List Files
const files = await storage.list.files({ prefix: 'uploads/', maxResults: 50 })
const paginated = await storage.list.paginated({ maxResults: 20 })
const images = await storage.list.byExtension('jpg')
File Info
const info = await storage.metadata.getInfo('file.jpg')
const exists = await storage.validation.exists('file.jpg')
Delete Files
await storage.delete.file('old-file.jpg')
await storage.delete.files(['file1.jpg', 'file2.pdf'])
await storage.delete.byPrefix('temp/')
Presigned URLs
const downloadUrl = await storage.download.presignedUrl('private/file.pdf', 3600)
const uploadUrl = await storage.upload.presignedUrl({ key: 'new-file.jpg', contentType: 'image/jpeg' })
API Route Example
// app/api/files/route.ts
import { storage } from '@/lib/upload'
export async function GET() {
const files = await storage.list.files()
return Response.json({ files })
}
export async function DELETE(request: Request) {
const { key } = await request.json()
const result = await storage.delete.file(key)
return Response.json(result)
}
Error Handling
import { isPushduckError } from 'pushduck/server'
try {
await storage.list.files()
} catch (error) {
if (isPushduckError(error)) {
console.log(error.code, error.context)
}
}
Types
import type {
FileInfo,
ListFilesOptions,
ValidationRules
} from 'pushduck/server'
Storage API
Complete guide to pushduck's storage API. Learn file operations, presigned URLs, storage instance management, and troubleshooting storage issues.
Storage Instance
Complete guide to pushduck's storage instance API. Learn the object-style interface for S3 operations including file listing, metadata, uploads, downloads, and validation.