Vana SDK - v2.2.2
    Preparing search index...

    Interface StorageCallbacks

    Storage callback functions for flexible storage operations.

    Instead of hardcoding storage behavior (HTTP endpoints, etc.), users can provide custom callback functions to handle storage operations in any way they choose. This pattern matches the relayer callbacks approach, providing maximum flexibility.

    const storageCallbacks: StorageCallbacks = {
    async upload(blob, filename, metadata) {
    // Custom implementation - could be HTTP, S3, local filesystem, etc.
    const formData = new FormData();
    formData.append('file', blob, filename);
    const response = await fetch('/api/storage/upload', {
    method: 'POST',
    body: formData
    });
    const data = await response.json();
    return {
    url: data.url,
    size: blob.size,
    contentType: blob.type,
    metadata: data.metadata
    };
    },

    async download(identifier) {
    const response = await fetch(`/api/storage/download/${identifier}`);
    return response.blob();
    }
    };
    interface StorageCallbacks {
        upload: (
            blob: Blob,
            filename?: string,
            metadata?: Record<string, unknown>,
        ) => Promise<StorageUploadResult>;
        download: (
            identifier: string,
            options?: StorageDownloadOptions,
        ) => Promise<Blob>;
        list?: (
            prefix?: string,
            options?: StorageListOptions,
        ) => Promise<StorageListResult>;
        delete?: (identifier: string) => Promise<boolean>;
        extractIdentifier?: (url: string) => string;
    }
    Index

    Properties

    upload: (
        blob: Blob,
        filename?: string,
        metadata?: Record<string, unknown>,
    ) => Promise<StorageUploadResult>

    Upload a blob to storage

    Type Declaration

      • (
            blob: Blob,
            filename?: string,
            metadata?: Record<string, unknown>,
        ): Promise<StorageUploadResult>
      • Parameters

        • blob: Blob

          The data to upload

        • Optionalfilename: string

          Optional filename hint

        • Optionalmetadata: Record<string, unknown>

          Optional metadata for the upload

        Returns Promise<StorageUploadResult>

        Upload result with identifier and metadata

    download: (
        identifier: string,
        options?: StorageDownloadOptions,
    ) => Promise<Blob>

    Download data from storage

    Type Declaration

      • (identifier: string, options?: StorageDownloadOptions): Promise<Blob>
      • Parameters

        • identifier: string

          The storage identifier (could be URL, hash, path, or any unique ID)

        • Optionaloptions: StorageDownloadOptions

          Optional download options

        Returns Promise<Blob>

        The downloaded data as a Blob

    list?: (
        prefix?: string,
        options?: StorageListOptions,
    ) => Promise<StorageListResult>

    List stored items (optional)

    Type Declaration

      • (prefix?: string, options?: StorageListOptions): Promise<StorageListResult>
      • Parameters

        • Optionalprefix: string

          Optional prefix to filter results

        • Optionaloptions: StorageListOptions

          Optional listing options

        Returns Promise<StorageListResult>

        Array of storage items with metadata

    delete?: (identifier: string) => Promise<boolean>

    Delete a stored item (optional)

    Type Declaration

      • (identifier: string): Promise<boolean>
      • Parameters

        • identifier: string

          The storage identifier to delete

        Returns Promise<boolean>

        Promise that resolves to true if deletion succeeded

    extractIdentifier?: (url: string) => string

    Extract identifier from a URL or return as-is (optional) Used for backward compatibility with URL-based systems

    Type Declaration

      • (url: string): string
      • Parameters

        • url: string

          The URL to extract from

        Returns string

        The extracted identifier