Nesne ve blob arka uçları için birleşik bir depolama SDK'sı. Küçük, basit bir API. Web standartlarında G/Ç. Yerel istemciye ihtiyaç duyduğunuzda bir kaçış yolu.
npm install files-sdkHer sağlayıcının yerel SDK'sı isteğe bağlı bir bağımlılıktır — yalnızca gerçekten kullandığınız SDK'ları, files-sdk ile birlikte yükleyin. Birkaç örnek:
# S3 (and any S3-compatible: R2, MinIO, DigitalOcean Spaces, Backblaze B2, Wasabi, …)
npm install files-sdk @aws-sdk/client-s3 @aws-sdk/s3-presigned-post @aws-sdk/s3-request-presigner
# Google Bulut Depolama
npm install files-sdk @google-cloud/storage google-auth-library
# Azure Blob Depolama
npm install files-sdk @azure/storage-blob @azure/core-auth @azure/identity
# Vercel Blob
npm install files-sdk @vercel/blobAdaptör başına kurulum komutu için files-sdk.dev adresine bakın. Eşi kurulu olmayan bir adaptörü içe aktarırsanız, Node eksik paketi belirterek ERR_MODULE_NOT_FOUND hatası verecektir.
import { Files } from "files-sdk";
import { s3 } from "files-sdk/s3";
const files = new Files({
adapter: s3({ bucket: "uploads" }),
});
await files.upload("avatars/abc.png", file, { contentType: "image/png" });
const got = await files.download("avatars/abc.png");
const exists = await files.exists("avatars/abc.png");Adaptör içe aktarma işlemini (files-sdk/r2, files-sdk/gcs, files-sdk/azure, …) değiştirin, kodunuzun geri kalanı aynı kalır.
Uygulama kodunuz aynı nesneyle tekrar tekrar çalışıyorsa files.file(key) kullanın:
const avatar = files.file("avatars/abc.png");
await avatar.upload(file, { contentType: "image/png" });
if (await avatar.exists()) {
const meta = await avatar.head();
const url = await avatar.url({ expiresIn: 300 });
}
await avatar.delete();Dosya tanıtıcıları, aynı adaptör yöntemlerinin üzerinde ince bir katmandır, bu nedenle adaptörlerin ekstra bir şey uygulamasına gerek yoktur.
-
Sağlayıcılar arasında tek bir API —
upload,download,head,exists,delete,copy,list,url,signedUploadUrlve anahtar kapsamlı bir tanıtıcı içinfile(key). Yapı, S3, GCS, Azure, Vercel Blob, yerel dosya sistemi ve Dropbox gibi tüketici sağlayıcılarında aynıdır.existsyalnızca sağlayıcıNotFoundbildirdiğindefalsedöndürür; kimlik doğrulama, izin ve taşıma hataları yine de hata verir. -
Web standardı G/Ç — gövdeler
Blob,File,ReadableStream,Uint8Array,ArrayBufferveyastring'dir. Sağlayıcıya özgü türler kodunuza sızmaz. -
Kaçış yolu — her adaptör, yerel istemcisini
files.rawadresinde gösterir, bu nedenle sağlayıcıya özgü özellikler tek bir özellik erişimiyle erişilebilir. -
Ağaç budama özelliği — her adaptör ayrı bir giriş noktasıdır. Yalnızca içe aktardığınızı paketlersiniz.
S3 ve S3 uyumlu depolama alanlarını, başlıca bulut blob platformlarını, uç/sunucusuz blob hizmetlerini, yerel dosya sistemini ve tüketici dosya sağlayıcılarını kapsayan büyüyen bir katalog. Güncel liste ve adaptör başına kurulum için files-sdk.dev adresine bakın.
Yapılandırılmış bir Files örneğini, popüler yapay zeka SDK'ları için hazır araçlar olarak saran, giderek büyüyen bir alt yol kümesi bulunmaktadır. Bunlar arasında şu anda Vercel AI SDK (files-sdk/ai-sdk), OpenAI'nin Responses API ve Agents SDK (files-sdk/openai) ve Anthropic'in Claude Agent SDK (files-sdk/claude) yer almaktadır. Hepsi aynı dosya işlemlerini ve onay kapısı varsayılanlarını paylaşır, böylece modeller, uygulama kodunuzla aynı birleşik yüzey üzerinden kova dosyanızı tarayabilir, okuyabilir ve (isteğe bağlı olarak) değiştirebilir. Güncel liste ve SDK başına ayarlar için files-sdk.dev adresine bakın.
MIT