Storagebus is a storage abstraction layer for Node.js that removes any difference among multiple public cloud storage services and local filesystems.
You can use Storagebus with your filesystem, AWS and GCP:
const { Storage } = require("storage/local");
// const { Storage } = require('storage/aws')
// const { Storage } = require('storage/gcp')
const { Readable } = require("node:stream");
const storage = new Storage({
rootFolder: "path/to/folder",
});
// const storage = new Storage({
// bucket: 'your-aws-bucket';
// region: 'your-aws-region';
// accessKeyId: 'your-aws-access-key';
// secretAccessKey: 'your-aws-secret-access-key';
// })
// const storage = new Storage({
// bucket: 'your-gcp-bucket';
// projectId: 'your-gcp-project-id';
// clientEmail: 'your-gcp-client-email';
// privateKey: 'your-gcp-private-key';
// })
async function main() {
// Your readable stream
const readable = Readable.from("Hello, world!");
// write a file
const writtenFileString = await storage.write("your-file.txt", readable);
// read a file from your storage
const fileReadable = await storage.read("your-file.txt");
// check for file existance in your storage
const exist = await storage.exists("your-file.txt");
// copy file
const copiedFileString = await storage.copy(
"your-file.txt",
"your-file-copy.txt"
);
// move a file
const movedFileString = await storage.move(
"your-file-copy.txt",
"moved/your-file-copy.txt"
);
// delete a file
await storage.remove("your-file.txt");
}
-
Clone this repository
git clone git@github.com:github.com/ducktors/storagebus.git
-
Move inside repository folder
cd storagebus
-
Install dependencies
pnpm install
-
Run the project in development mode
pnpm dev
The release is performed by the maintainers of the repository. New versions are managed via changesets.
To release a new version, simply choose which package to bump with pnpm release
command:
$ pnpm release
> @ducktors/storagebus@0.9.0 release /ducktors-workstation/storagebus
> changeset
🦋 Which packages would you like to include? …
◯ unchanged packages
◯ @ducktors/storagebus-abstract
◯ @ducktors/storagebus-gcs
◯ @ducktors/storagebus-local
◯ @ducktors/storagebus-s3
Maksim Sinik 💻 |
Matteo Vivona 🚇 🛡️ 📖 |
Andrew Hu 📖 |