Aurabase Logosu
aura tabanıdokümanlar
dokümanlar›Kılavuzlar›Store and serve files (SDK)

Dosyaları JavaScript SDK'sıyla depolayın ve sunun

Çalışan bir yığına karşı gözlemlenen erişim kurallarıyla birlikte aura.storage günlük akışları.

8 dk. oku·Seviye orta düzey·12 Eki 2026 tarihinde revize edildi
Bu İngilizce metin, Fransızca orijinalinden otomatik olarak oluşturulmuştur ve henüz incelenmemiştir.
Bu sayfa otomatik olarak çevrildi. İngilizce versiyonu yetkilidir.
#
Kovalar

1. Kovalar

Bir paket, dosyaları gruplandırır ve bunların herkese açık olup olmadığına karar verir. Paket oluşturmak ve silmek için service_role anahtarı gerekir. Bunları listelemek için oturum açmış bir kullanıcı veya service_role anahtarı gerekir; ortak anahtar tek başına 403 alır.

server/buckets.tstypescript
await admin.storage.createBucket('avatars', { public: true })   // herkes dosyaları okuyabilir
await admin.storage.createBucket('invoices', { public: false })  // sadece sahibi yapabilir
const { data: buckets } = await admin.storage.listBuckets()

Bir paket ayrıca fileSizeLimit (bayt cinsinden) ve allowedMimeTypes öğelerini de kabul eder. Çok büyük bir yükleme 413 değerini döndürür, izin verilmeyen bir tür ise 400 değerini döndürür.

#
Dosyalar

2. Yükleyin, indirin, listeleyin, kaldırın

files.tstypescript
const bucket = aura.storage.from('invoices')

// Yükleme: bir Blob, bir Dosya veya bir ArrayBuffer
const { data, error } = await bucket.upload(`${user.id}/2026-10.pdf`, file, {
  contentType: 'application/pdf',
})
// → { anahtar, paket, url, boyut, içerik_türü, etag }

// Mevcut bir dosyayı değiştirme
await bucket.upload(`${user.id}/2026-10.pdf`, newFile, { upsert: true })

// Bir klasörü listeleme, indirme, kaldırma
const { data: files } = await bucket.list(user.id)
const { data: blob } = await bucket.download(`${user.id}/2026-10.pdf`)
await bucket.remove([`${user.id}/2026-10.pdf`])

Ne beklenebilir:

  • Mevcut bir yolu yüklemek, 409 değerini geçmediğiniz sürece upsert: true değerini döndürür.
  • Yükleme işlemi için oturum açmış bir kullanıcı veya service_role anahtarı gerekir. Genel anahtar tek başına 403 alır, hatta genel bir paket için bile.
  • .. içeren bir yol, ile 400 ile reddedilir.
  • Yollar bir paket içinde paylaşılır. Eğer başka bir kullanıcı zaten yola sahipse, 409 alırsınız. Her kullanıcının dosyalarını ${user.id}/… gibi kendi klasörlerinin altına koyun.
#
Paylaş

3. Bir dosyayı paylaşın

share.tstypescript
// Herkese açık bir paketteki dosya: istek olmadan oluşturulmuş kalıcı bir URL
const { data } = aura.storage.from('avatars').getPublicUrl('ada.png')
// → { publicUrl: 'https://my-app.aurabase.cloud/v1/storage/avatars/ada.png' }

// Özel bir dosya: geçici bir bağlantı
const { data: signed } = await aura.storage.from('invoices').createSignedUrl(`${user.id}/2026-10.pdf`, 60)
// → { url, süresi dolan_in: 60 }

Her iki bağlantı da anahtar olmadan getirildi ve dosyayı döndürdü. İmzalı bir bağlantı expires_in saniye sonra çalışmayı durdurur. Bir tarayıcının anahtarsız yükleme yapmasına izin vermek için, sunucu createSignedUploadUrl(path) (bir service_role çağrısı) basar.

#
Erişim

4. Kim ne yapabilir?

EylemOrtak anahtarOturum açmış kullanıcıservice_role
Genel paketteki bir dosyayı okumaevetevetevet
Özel bir paketteki bir dosyayı okuyun, listeleyinhayırsadece onun sahibievet
Yüklehayırevetevet
Dosyayı değiştirme veya kaldırmahayırsadece onun sahibievet
Paketleri listelehayırevetevet
Paketleri oluşturma, silmehayırhayırevet

Dosyanın sahibi, dosyayı yükleyen kullanıcıdır. Gerçek bir çalıştırmada, ikinci bir kullanıcı, ilk kullanıcının dosyasını özel bir pakette listeleyemez, indiremez veya kaldıramaz ve onu değiştiremez.

#
Sunucu

5. Bir sunucudan taşıyın ve kopyalayın

server/organise.tstypescript
await admin.storage.copy('invoices', 'a/hello.txt', 'a/copy.txt')
await admin.storage.move('invoices', 'a/copy.txt', 'a/moved.txt')
const { data: meta } = await admin.storage.getMetadata('invoices', 'a/hello.txt')

Görüntünün yeniden boyutlandırılması depolama referansı'de açıklanmaktadır.