Quickstarty

Quickstart: Storage

Bucket, upload i podpisany URL.

Storage jest zgodny z API Supabase Storage i protokołem S3.

Zmienne w przykładach: $HOSTBASE_TOKEN (token dostępu), $REF (ref projektu). SDK: @hostbase/management (TypeScript) i hostbase_management (Python), pełne API: /docs/api.

1. Utwórz bucket

Klucz service_role tylko po stronie serwera.

curl -X POST https://abcdefghijklmnopqrst.host.ulewicz.space/storage/v1/bucket -H "apikey: $SERVICE_KEY" -H "Authorization: Bearer $SERVICE_KEY" \
  -H "Content-Type: application/json" -d '{"id":"avatars","name":"avatars","public":false}'
await supabase.storage.createBucket("avatars", { public: false });
supabase.storage.create_bucket("avatars", options={"public": False})

2. Wyślij plik

curl -X POST https://abcdefghijklmnopqrst.host.ulewicz.space/storage/v1/object/avatars/me.png -H "apikey: $ANON_KEY" -H "Authorization: Bearer $USER_JWT" \
  -H "Content-Type: image/png" --data-binary @me.png
await supabase.storage.from("avatars").upload("me.png", file, { contentType: "image/png" });
supabase.storage.from_("avatars").upload("me.png", open("me.png", "rb").read(), {"content-type": "image/png"})

3. Podpisany URL

Link ważny przez godzinę.

curl -X POST https://abcdefghijklmnopqrst.host.ulewicz.space/storage/v1/object/sign/avatars/me.png -H "Authorization: Bearer $USER_JWT" -H "apikey: $ANON_KEY" \
  -H "Content-Type: application/json" -d '{"expiresIn":3600}'
const { data } = await supabase.storage.from("avatars").createSignedUrl("me.png", 3600);
supabase.storage.from_("avatars").create_signed_url("me.png", 3600)

Dalej: /docs/storage, /docs/transformacje-obrazow.