Remote Storage Provider

A Remote Storage Provider is an abstract class representing a provider for remote storage functionalities. This class is intended to be extended by a specific implementation of a remote storage provider. It offers methods to upload and download files, as well as the ability to monitor upload progress.


Below is a demonstration of extending the RemoteStorageProvider class for a custom implementation. You'll need to provide the actual logic for the upload and download methods based on your specific remote storage solution.

import type { FileInput } from '@4thtech-sdk/types';
import { RemoteStorageProvider } from '@4thtech-sdk/storage';

class MyRemoteStorageProvider extends RemoteStorageProvider {
  public async upload(file: FileInput, fileName: string): Promise<string> {
    // TODO: Implement the logic to upload the file to your storage.

    // Emitting the upload progress (for demonstration, assuming 100% here).
    this.emitUploadProgress(100, fileName);

    // Replace with the actual uploaded file URL.
    const uploadedFileUrl = '';
    return uploadedFileUrl;

  public async download(url: string): Promise<ArrayBuffer> {
    // TODO: Implement the logic to download the file from your storage.

    // Replace with the actual file content.
    const fileContent = new ArrayBuffer(0);
    return fileContent;