API referansı

@thefinder/next

Next.js App Router entegrasyonu. output: "standalone" dahil her modda çalışır. Kurulum adımları için kök README › Next.js bölümüne bakın.

Yeniden dışa aktarımlar#

Tek import yeterli olsun diye şunlar @thefinder/core'dan aynen gelir: createTheFinder, TheFinderError, localDriver, s3Driver ve core'daki tüm tipler.

import { createTheFinder, localDriver, s3Driver, uploadsDir, TheFinderError } from "@thefinder/next";

createNextRoutes(finder)#

app/api/<ad>/route.ts için route handler'ları üretir.

// app/api/files/route.ts
import { createNextRoutes } from "@thefinder/next";
import { finder } from "@/lib/finder";

export const runtime = "nodejs";
export const { GET, POST } = createNextRoutes(finder);
ParametreAçıklama
finderBir TheFinder örneği ya da TheFinderOptions. Seçenek nesnesi verilirse örnek içeride oluşturulur.

Döner: { GET, POST, HEAD }. HEAD'i de dışa aktarırsanız Range destekli dosya yanıtlarında HEAD istekleri de karşılanır.

runtime = "nodejs" yerel disk için gereklidir. Yalnızca S3 volume'leri kullanıyorsanız Edge runtime'da da çalışır.

createUploadsRoute(options?)#

app/uploads/[...path]/route.ts için dosya sunucusu. Dosyaları her istekte diskten okur, bu yüzden build'den sonra yüklenen dosyalar da hemen sunulur (public/ klasöründe böyle olmaz).

// app/uploads/[...path]/route.ts
import { createUploadsRoute } from "@thefinder/next";

export const runtime = "nodejs";
export const { GET, HEAD } = createUploadsRoute();
SeçenekTipVarsayılanAçıklama
dirstringuploadsDir()Sunulacak klasör. driver verilirse yok sayılır.
driverStorageDriver—Başka bir sürücüden sun (örneğin özel bir S3 bucket'ını uygulama üzerinden)
paramstring"path"Catch-all segmentin adı ([...path])
authorize(request, path) => boolean \| Promise<boolean>—false → 404. Özel dosyalar için oturum kontrolü.
cacheControlstring"public, max-age=0, must-revalidate"ETag ile her istekte yeniden doğrulanır
showHiddenbooleanfalseNokta dosyalarını sunar. .tf-* iç klasörleri asla sunulmaz.

Range (video ileri sarma), ETag/304, doğru Content-Type ve ?download desteklenir. HTML ve SVG Content-Security-Policy: sandbox ile sunulur. Next.js 14 (senkron params) ve 15+ (Promise params) ile çalışır.

Proje kökü ve yükleme klasörü#

FonksiyonDöner
projectRoot()Uygulamanın proje kökü
projectPath(...segments)Proje kökü altında bir yol
uploadsDir(name = "uploads")<proje kökü>/uploads

projectRoot() şöyle çalışır:

OrtamSonuç
next dev, next startÇalışma dizini
output: "standalone"server.js kendini .next/standalone[/<uygulama>] içine taşır; .next öncesindeki yol kullanılır. Yani dosyalar build çıktısına değil, yine proje köküne yazılır.
CI_FINDER_ROOT tanımlıBu değer (mutlak yola çevrilir)

uploadsDir() ayrıca CI_FINDER_UPLOADS_DIR ortam değişkenine bakar: mutlak yol olduğu gibi, göreli yol proje köküne göre kullanılır. Docker'da kalıcı bir diske yazmak için kullanışlıdır.

Ortam değişkenleri ve process.cwd() bilerek globalThis üzerinden okunur. Böylece Next'in dosya izleyicisi tüm projeyi (ve yüklenen dosyaları) standalone paketine kopyalamaz.

Standalone kontrol listesi#

Bu sayfa docs/api/tr/next.md dosyasından üretildi.