
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Beycloud is an open-source Node.js library that provides a unified interface for uploading and managing files across multiple storage providers, including:
It abstracts provider-specific SDKs and presents a simple, consistent API.
npm install beycloud
Each provider requires its own configuration object:
const awsConfig = {
bucket: process.env.AWS_BUCKET,
region: process.env.AWS_REGION,
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY,
secretAccessKey: process.env.AWS_SECRET_KEY
}
};
const gcsConfig = {
bucket: process.env.GCS_BUCKET,
projectId: process.env.GCS_PROJECT_ID,
credentials: process.env.GCS_CREDENTIALS_BASE64 // Base64-encoded service account JSON
};
const azureConfig = {
connectionString: process.env.AZURE_CONNECTION_STRING,
container: process.env.AZURE_CONTAINER
};
const doConfig = {
bucket: process.env.DO_BUCKET,
region: process.env.DO_REGION,
endpoint: process.env.DO_ENDPOINT,
forcePathStyle: false,
credentials: {
accessKeyId: process.env.DO_ACCESS_KEY,
secretAccessKey: process.env.DO_SECRET_KEY
}
};
const localConfig = {
basePath: './uploads'
};
import express from 'express';
import multer from 'multer';
import { BeyCloud } from 'beycloud';
const app = express();
const upload = multer();
const cloudStorage = new BeyCloud('aws', awsConfig);
app.post('/upload', upload.single('file'), async (req, res) => {
try {
const file = req.file;
const filename = `${Date.now()}-${file.originalname}`;
const url = await cloudStorage.uploadFile(filename, file.buffer, file.mimetype);
res.json({ url });
} catch (err) {
res.status(500).json({ error: err.message });
}
});
uploadFile(key, data, contentType?)Uploads a file. Returns a signed or direct URL.
downloadFile(key)Downloads the file. Returns a buffer or stream depending on the provider.
deleteFile(key)Deletes the file. Returns true if successful.
exists(key)Checks if the file exists. Returns boolean.
getFile(key)Returns metadata about the file.
getFilesList(maxKeys?, prefix?)Returns an array of file metadata under a prefix.
getSignedUrl(key, expiresIn)Generates a signed URL that expires in expiresIn seconds.
npm install.env with test credentialsnpm testRewrite library for:
Copyright (c) 2025 Davide Tarditi
Beycloud-js is released under MIT license. You are free to use, modify and distribute this software, as long as the copyright header is left intact.
See LICENSE.txt for more information.
FAQs
A library to handle file uploads to different cloud providers
We found that beycloud demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.