Convex
@transloadit/convex ist eine Convex-Komponente, mit der sich Transloadit nativ anfühlt. Sie signiert
Upload-Optionen serverseitig, verifiziert Webhooks und speichert Ergebnisse in Convex, damit sich Ihre
Benutzeroberfläche in Echtzeit aktualisieren kann.
Installation
npm i @transloadit/convex @uppy/core @uppy/transloadit
Einrichtung
- Registrieren Sie die Komponente:
// convex/convex.config.ts
import { defineApp } from 'convex/server'
import transloadit from '@transloadit/convex/convex.config'
const app = defineApp()
app.use(transloadit)
export default app
- Legen Sie Umgebungsvariablen fest:
npx convex env set TRANSLOADIT_KEY <your_auth_key>
npx convex env set TRANSLOADIT_SECRET <your_auth_secret>
- Erstellen Sie Aktionen mit
makeTransloaditAPI:
// convex/transloadit.ts
import { makeTransloaditAPI } from '@transloadit/convex'
import { components } from './_generated/api'
export const { createAssemblyOptions, queueWebhook, listResults } = makeTransloaditAPI(
components.transloadit,
)
Uppy-Client
Verwenden Sie Uppy mit assemblyOptions() aus Convex, damit geheime Daten nie in den Browser gelangen:
import Uppy from '@uppy/core'
import Transloadit from '@uppy/transloadit'
import { api } from './_generated/api'
const uppy = new Uppy().use(Transloadit, {
waitForEncoding: true,
assemblyOptions: async () => {
const { assemblyOptions } = await runAction(api.transloadit.createAssemblyOptions, {
steps: {
resized: {
use: ':original',
robot: '/image/resize',
width: 800,
},
},
})
return assemblyOptions
},
})
Demo-App
Sehen Sie sich die vollständige Hochzeitsgalerie-Demo unter convex-demo.transload.it und den vollständigen Quellcode im GitHub-Repository an.