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

evenstaian-file-manager-sdk

v1.0.0

Published

This is the file manager SDK created to use IPFS and S3 as storage providers

Readme

File Manager SDK

A lightweight SDK for managing file uploads across multiple cloud storage providers, with built-in support for AWS S3 and IPFS (via Pinata).

Features

  • Multi-provider support (AWS S3 and IPFS/Pinata)
  • TypeScript definitions included
  • Simple unified interface
  • Comprehensive error handling

Quick Start

Installation

npm install file-manager-sdk
# or
yarn add file-manager-sdk

Basic Usage

  1. Initialize
const { FileManagerServiceSdk } = require('file-manager-sdk');
const fileManager = new FileManagerServiceSdk();
  1. Configure
await fileManager.files.config({
    AWSConfigs: {
        AccessKey: 'YOUR_AWS_KEY',
        AccessSecret: 'YOUR_AWS_SECRET'
    },
    PinataConfigs: {
        AccessKey: 'YOUR_PINATA_KEY',
        AccessSecret: 'YOUR_PINATA_SECRET'
    }
});
  1. Upload Files

AWS S3:

const result = await fileManager.files.save('S3', {
    originalname: 'example.jpg',
    buffer: fileBuffer
}, 'my-bucket');

IPFS:

const result = await fileManager.files.save('IPFS', {
    originalname: 'example.jpg',
    buffer: fileBuffer
}, null, {
    name: 'My File',
    description: 'File description'
});

API Reference

files.config(params)

Configure storage providers credentials.

interface ConfigParams {
    AWSConfigs?: {
        AccessKey: string;
        AccessSecret: string;
    };
    PinataConfigs?: {
        AccessKey: string;
        AccessSecret: string;
    };
}

files.save(storageType, file, bucket?, metadata?)

Upload a file to the specified storage provider.

interface FileData {
    originalname: string;
    buffer: Buffer;
}

type Response = Promise<{
    data?: any;
    error?: string;
}>;

Parameters:

  • storageType: 'S3' | 'IPFS'
  • file: FileData
  • bucket: string (required for S3)
  • metadata: object (required for IPFS)

Error Handling

The SDK returns structured responses:

{
    data?: any;    // Success data
    error?: string // Error message if failed
}

Contributing

We're open to contributions! If you'd like to improve this SDK, here are some ways you can contribute:

  • New Storage Providers: Help us expand support for more cloud storage solutions
  • Bug Fixes: Found a bug? Open an issue or submit a fix
  • Documentation: Help improve or translate the documentation
  • Features: Suggest or implement new features
  • Examples: Add more example use cases

Please feel free to submit pull requests or create issues for any improvements you'd like to see.

Development Setup

  1. Fork the repository
  2. Clone your fork
  3. Install dependencies: npm install
  4. Make your changes
  5. Run tests: npm test
  6. Submit a pull request

We appreciate any contributions, whether it's code, documentation, or bug reports!

Author

Evens Taian

License

MIT License