{"repo":"tweedegolf/storage-abstraction","free":true,"listed":false,"github":"https://github.com/tweedegolf/storage-abstraction","clone":"git clone https://github.com/tweedegolf/storage-abstraction.git","description":"Provides an abstraction layer for interacting with a storage; the storage can be local or in the cloud.","language":"TypeScript","stars":144,"topics":["cloud-storage","amazon","google-cloud","bucket","storage-abstractions","storage-providers","aws","aws-s3","nodejs","storage"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"Storage Abstraction Provides an abstraction layer for interacting with a storage; the storage can be on a local file system or in the cloud. Supported cloud storage providers are: - Amazon S3 - Google Cloud - Azure Blob - MinIO (native and S3) - Backblaze B2 (native and S3) - CloudFlare R2 (S3) - Cubbit (S3) The storage abstraction API only supports basic storage operations (see below) so the API can be cloud agnostic. This means that you can develop your application using local disk storage and then use for instance Google Cloud or Amazon S3 in your production environment without the need to change any code. Table of contents Documentation Adapter API Introspective API Storage API :--- :--- :--- :--- 1. How it works listBuckets getProvider getAdapter 2. Instantiate a storage listFiles getConfiguration switchAdapter a. Configuration object bucketIsPublic getConfigurationError &nbsp; b. Configuration URL bucketExists getServiceClient &nbsp; c. How bucketName is used fileExists getSelectedBucket 3. Adapters createBucket setSelectedBucket 4. Adding an adapter clearBucket &nbsp; a. Add your storage type deleteBucket &nbsp; b. Define your configuration addFile &nbsp; c. Adapter class addFileFromPath &nbsp; d. Adapter function addFileFromBuffer &nbsp; e. Register your adapter addFileFromStream &nbsp; f. Adding your adapter code to this package getPresignedUploadURL 5. Tests getPublicURL 6. Example application getSignedURL 7. Questions and requests getFileAsStream &nbsp; removeFile ","default_branch":null,"files":null,"tree":[],"storefront":"/r/tweedegolf","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tweedegolf/storage-abstraction/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}