MonoStack
Functionalities

File Storage

S3-compatible file uploads.

Package: @repo/storage Built on: AWS S3 SDK

Setup

# .env
S3_ENDPOINT=http://localhost:9000
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin
S3_BUCKET=uploads
S3_REGION=us-east-1

File Upload Component

<script lang="ts">
  import { FileInput } from '@repo/storage'
</script>

<form method="POST" enctype="multipart/form-data">
  <FileInput.Root name="avatar" accept="image/*" />
  <button type="submit">Upload</button>
</form>

Server Handler

// users.remote.ts
import { ServerFileManager } from '@repo/storage'
import { form } from '$app/server'

export const updateAvatar = form(schema, async (data, { request }) => {
  const files = new ServerFileManager(request)
  const avatar = await files.sync('avatar', 'avatars')

  await db.update(users).set({ avatarUrl: avatar.url }).where(eq(users.id, data.userId))
})

Full Documentation

See @repo/storage for complete API reference.

On this page