0.2.6-dev • Published 9 months ago

@placeos/cloud-uploads v0.2.6-dev

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

Typescript Cloud Uploads Library

To be used in conjuction with Comdominios.

Introduction

This project is a library for handling secure direct to cloud uploads that are managed by the Condominios project. At Place we use it to handle all of our file ingestion as it:

  • takes the load away from our API servers
  • allows us to support hybrid cloud models
  • works seamlessly with AWS Lambda and Google Cloud Functions

  • Manages an upload queue with pause, resume and progress for each upload

  • Supports configuring individual upload parallelism and the number of simultaneous uploads
  • All files are hashed in webworkers before upload for data integrity
  • Communicates with Condominios to obtain signed requests for the uploads

Usage

Install the node package with npm install @placeos/cloud-uploads

Initialise the service in your code before using it.

import { initialiseUploadService, Amazon } from '@placeos/cloud-uploads';

function bootstrap() {
    initialiseUploadService({
        auto_start: true,
        token: 'access_token',
        endpoint: '/api/engine/v2/uploads',
        worker_url: 'assets/md5_worker.js',
        providers: [Amazon] as any
    });
}

Load file data into browser and call the method to upload the file.

import { uploadFiles, Upload } from '@placeos/cloud-uploads';

function uploadFile(file: File) {
    const fileReader = new FileReader();
    fileReader.addEventListener('loadend', (e: any) => {
        const arrayBuffer = e.target.result;
        const blob = blobUtil.arrayBufferToBlob(arrayBuffer, file.type);
        const [upload] = uploadFiles([blob], { file_name: file.name });
        ...
    });
    fileReader.readAsArrayBuffer(file);
}

Upload type provides an obserable for the status/progress of the upload

const [upload] = uploadFiles([blob], { file_name: file.name });
upload.subscribe(
    (state) => state.status === 'error' 
        ? console.log('Status:', state.error) 
        : console.log('Status:', state.status),
)
0.1.3-dev

9 months ago

0.1.16-dev

9 months ago

0.1.7-dev

9 months ago

0.1.12-dev

9 months ago

0.2.4-dev

9 months ago

0.2.1-dev

9 months ago

0.1.11-dev

9 months ago

0.1.6-dev

9 months ago

0.2.3-dev

9 months ago

0.1.10-dev

9 months ago

0.1.15-dev

9 months ago

0.1.14-dev

9 months ago

0.1.5-dev

9 months ago

0.2.6-dev

9 months ago

0.1.9-dev

9 months ago

0.1.13-dev

9 months ago

0.1.4-dev

9 months ago

0.1.17-dev

9 months ago

0.2.0-dev

9 months ago

0.1.8-dev

9 months ago

0.2.5-dev

9 months ago

0.1.2-dev

2 years ago

0.1.1-dev

2 years ago

0.1.0-dev

2 years ago

0.0.9-dev

2 years ago

0.0.8-dev

2 years ago

0.0.7-dev

2 years ago

0.0.6-dev

2 years ago

0.0.5-dev

3 years ago

0.0.4-dev

3 years ago

0.0.3-dev

3 years ago

0.0.2-dev

3 years ago

0.0.1-dev

3 years ago