Arquivos com
transformação de imagem.
Upload de qualquer tipo, até 50 MB por arquivo, links assinados com prazo, transformação de imagem pela URL e buckets públicos ou privados. Com os métodos de storage do supabase-js.
O storage que seu time vai usar todo dia.
Buckets, arquivos, links assinados e transformação de imagem — em português, no painel do SuperDB.
| Bucket | Visibilidade | Limite | Arquivos |
|---|---|---|---|
| proj_loja_anexos | privado | 50 MB | 14.142 |
| proj_loja_fotos | público | 5 MB | 8.400 |
| proj_loja_contratos | privado | 20 MB | 312 |
| proj_loja_recibos | privado | 10 MB | 4.200 |
| Parâmetro | Exemplo | O que faz |
|---|---|---|
| width / height | 200 | largura e altura em pixels |
| resize | cover | cover, contain ou fill |
| quality | 80 | de 20 a 100 |
O que tem dentro.
O que você usa para guardar e servir os arquivos do seu app.
Upload até 50 MB
Cada arquivo vai até 50 MB, e cada bucket pode ter um limite menor. Pelo painel ou pelo SDK, com upsert para substituir o arquivo que já existe.
Transformação de imagem
Largura, altura, recorte (cover, contain ou fill) e qualidade, direto na URL de um bucket público. Sai em WebP quando o navegador aceita.
Links assinados
createSignedUrl com o prazo em segundos: quem tem o link baixa o arquivo até ele vencer, e o bucket continua privado.
Público ou privado
Em bucket público, qualquer um com a URL lê. Em bucket privado, a chave pública não abre nada: só link assinado ou um usuário logado do projeto — qualquer um deles, porque ainda não há pasta por usuário.
Isolado por projeto
Um projeto nunca alcança os buckets de outro. Enviar, apagar e criar bucket exigem a chave de servidor ou um usuário logado; a chave pública só lê o que é público.
Vídeo e áudio por partes
O servidor responde a pedidos de intervalo (HTTP 206): o <video> do HTML começa a tocar e pula para o meio sem baixar o arquivo inteiro.
Buckets
Crie os buckets que precisar, pelo painel ou pela API. O nome real é proj_<projeto>_<nome>, o mesmo que aparece no painel, e é ele que vai no código.
Métodos do supabase-js
storage.from(bucket) com upload, download, list, remove, getPublicUrl e createSignedUrl, com os mesmos nomes.
Arquivos no Brasil
Os arquivos ficam no disco do servidor em São Paulo, junto do banco. A cópia de segurança vai para fora do servidor já cifrada.
Arquivos e tráfego por plano
Grátis: 1 GB de arquivos e 10 GB de tráfego. Site: 25 GB de arquivos e 500 GB de tráfego. Pro: 100 GB de arquivos e 2 TB de tráfego. Escala: 400 GB de arquivos e 5 TB de tráfego.
Os métodos de storage
do supabase-js.
O db.storage do @superdb/client tem os métodos do @supabase/supabase-js: from(bucket).upload(), download, list, remove, getPublicUrl e createSignedUrl.
Você troca o import; os arquivos que já estão no Supabase entram pelo passo de storage do guia de migração.
import { createClient } from '@superdb/client'
const db = createClient(url, anonKey, { project: 'loja' })
// O bucket se chama proj_<projeto>_<nome>, como aparece no painel
const { data } = await db.storage
.from('proj_loja_avatares')
.upload(`${userId}/avatar.png`, file, { upsert: true })
// URL pública e miniatura de 200 × 200
const { data: { publicUrl } } = db.storage
.from('proj_loja_avatares')
.getPublicUrl(`${userId}/avatar.png`)
const thumb = publicUrl.replace('/object/', '/render/image/')
+ '?width=200&height=200&resize=cover&quality=80'
// Link assinado de 1 hora para um PDF privado
const { data: signed } = await db.storage
.from('proj_loja_contratos')
.createSignedUrl('contrato-001.pdf', 3600)
Storage para app brasileiro.
Pronto pra subir os primeiros arquivos?
No plano Grátis: 1 GB de arquivos e 10 GB de tráfego. Sem cartão.