supabaseStorage top-level property
StoragePlugin Function(SupabaseStorageConfig config, [StoragePluginHooks? hooks])
supabaseStorage
final
Supabase-backed universal (node + runtime) storage plugin.
Implementation
final supabaseStorage = createUniversalStoragePlugin<SupabaseStorageConfig>(
name: 'supabaseStorage',
supportedProtocol: 'supabase-storage',
factory: (config) {
final supabase = config.clientFactory != null
? config.clientFactory!(config.supabaseUrl, config.resolveKey())
: createSupabaseHttpClient(config.supabaseUrl, config.resolveKey());
final bucket = supabase.storage.from(config.bucketName);
final getStorageKey = createStorageKeyBuilder(config.basePath);
final resolveSignedUrl = createSupabaseSignedUrlBatcher(
createSignedUrls: (bucketName, keys, expiresIn) =>
supabase.storage.from(bucketName).createSignedUrls(keys, expiresIn),
expiresIn: 3600,
formatObjectPath: (bucketName, key) => key,
);
return (
node: NodeStorageProfileImpl(
bucket: bucket,
getStorageKey: getStorageKey,
bucketName: config.bucketName,
verifySigned: _verifyObjectCanBeSignedForRuntime,
createSignedUrlOrThrow: _createSignedUrlOrThrow,
),
runtime: RuntimeStorageProfileImpl(
bucket: bucket,
resolveSignedUrl: resolveSignedUrl,
bucketName: config.bucketName,
),
);
},
);