npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@orbit-stream/storage

v1.0.6

Published

Universal storage SDK for AWS S3, MinIO, and S3-compatible object storage systems.

Readme

storage-sdk

storage-sdk is a reusable and extensible object storage abstraction library for Node.js applications.

The SDK is designed for:

  • cloud deployments
  • on-prem deployments
  • hybrid infrastructure
  • reusable platform engineering

Enterprise-ready storage SDK for:

  • AWS S3
  • MinIO
  • Local Storage

Supports:

  • Multipart uploads
  • Parallel uploads
  • Signed URLs
  • Large file uploads
  • Download streaming
  • Upload progress
  • Enterprise telemetry ingestion workflows

Installation

npm install @orbit-stream/storage

Environment Variables

AWS S3

STORAGE_PROVIDER=s3-compatible

S3_REGION=us-east-1

S3_BUCKET=my-bucket

S3_ACCESS_KEY=your-access-key

S3_SECRET_KEY=your-secret-key

MinIO

STORAGE_PROVIDER=s3-compatible

S3_REGION=us-east-1

S3_BUCKET=my-bucket

S3_ENDPOINT=http://localhost:9000

S3_FORCE_PATH_STYLE=true

S3_ACCESS_KEY=minioadmin

S3_SECRET_KEY=minioadmin

Basic Usage

const storage = require("@orbit-stream/storage");

Upload File

const fs = require("fs");

await storage.upload({
  key: "documents/test.zip",

  body: fs.createReadStream("./test.zip"),

  contentType: "application/zip",
});

Upload With Progress

const fs = require("fs");

let lastLogged = null;

await storage.upload({
  key: "documents/test.zip",

  body: fs.createReadStream("./test.zip"),

  contentType: "application/zip",

  onProgress: (progress) => {
    const uploaded = (progress.loaded / 1024 / 1024 / 1024).toFixed(1);

    if (uploaded !== lastLogged) {
      lastLogged = uploaded;

      console.log(`Uploaded ${uploaded} GB`);
    }
  },
});

Download File

const fs = require("fs");

const response = await storage.download("documents/test.zip");

const writeStream = fs.createWriteStream("./downloaded.zip");

response.Body.pipe(writeStream);

Check File Exists

const exists = await storage.exists("documents/test.zip");

console.log(exists);

Delete File

await storage.delete("documents/test.zip");

List Files

const files = await storage.list("documents/");

console.log(files);

Generate Upload Signed URL

const signedUrl = await storage.getUploadSignedUrl({
  key: "documents/test.zip",

  contentType: "application/zip",

  expiresIn: 3600,
});

console.log(signedUrl);

Upload Using Signed URL

const axios = require("axios");

const fs = require("fs");

const stream = fs.createReadStream("./test.zip");

await axios.put(
  signedUrl,

  stream,

  {
    headers: {
      "Content-Type": "application/zip",
    },
  },
);

Generate Download Signed URL

const downloadUrl = await storage.getDownloadSignedUrl(
  "documents/test.zip",

  3600,
);

console.log(downloadUrl);

Multipart Upload

Create Multipart Upload

const multipart = await storage.createMultipartUpload({
  key: "documents/large.zip",

  contentType: "application/zip",
});

console.log(multipart.UploadId);

Generate Multipart Signed URL

const signedUrl = await storage.getMultipartUploadSignedUrl({
  key: "documents/large.zip",

  uploadId: multipart.UploadId,

  partNumber: 1,
});

Complete Multipart Upload

await storage.completeMultipartUpload({
  key: "documents/large.zip",

  uploadId: multipart.UploadId,

  parts: [
    {
      PartNumber: 1,

      ETag: '"etag"',
    },
  ],
});

Abort Multipart Upload

await storage.abortMultipartUpload({
  key: "documents/large.zip",

  uploadId: multipart.UploadId,
});

Health Check

const health = await storage.health();

console.log(health);

Provider Capabilities

console.log(storage.capabilities());

Supported Providers

| Provider | Supported | | ------------- | --------- | | AWS S3 | ✅ | | MinIO | ✅ | | Local Storage | ✅ |


Enterprise Features

  • Multipart uploads
  • Parallel uploads
  • Signed URLs
  • Streaming downloads
  • Upload progress tracking
  • Retry support
  • MinIO compatible
  • AWS S3 compatible
  • Large file support
  • Kubernetes friendly
  • Telemetry ingestion ready

Recommended Multipart Upload Settings

| File Size | Recommended | | --------- | --------------------------- | | <1GB | Single Upload | | 1GB–10GB | Multipart Upload | | >10GB | Multipart + Parallel Upload |


License

MIT