tmpbox.me
v1.0.5
Published
Official TmpBox.me uploader SDK and CLI for Node.js.
Downloads
588
Maintainers
Readme
tmpbox.me
Official Node.js SDK and CLI for uploading files to TmpBox.me.
- No account required for guest uploads
- Guest uploads up to 100MB
- Logged-in users upload up to 500MB
- Default expiration is 30 days
- Supports CommonJS, ES Module, TypeScript and CLI
Installation
npm install tmpbox.meNode.js 18+ is required.
Upload Limits
| Mode | Authentication | Max file size | Available TTL |
| ----- | ---------------------------- | ------------: | ---------------------------------------------------- |
| Guest | None | 100 MB | 1d, 7d, 30d (default) |
| User | Username & Password or Token | 500 MB | 1d, 7d, 30d (default), 0 (Never expires) |
Quick Start (Guest)
No account or token is required.
If no authentication is provided, uploads automatically use Guest Mode.
import { uploadFile } from "tmpbox.me";
const result = await uploadFile("./video.mp4");
console.log(result.fullUrl);CommonJS
const { uploadFile } = require("tmpbox.me");
const result = await uploadFile("./video.mp4");
console.log(result.fullUrl);Guest uploads:
- Maximum file size: 100MB
- Default TTL: 30 days
- Supported TTL:
1d7d30d
Example:
import { uploadFile } from "tmpbox.me";
const result = await uploadFile("./photo.png", {
ttl: "7d",
});Login with Username & Password
Logged-in users can upload files up to 500MB.
import { uploadFile } from "tmpbox.me";
const result = await uploadFile("./movie.mp4", {
username: "your_username",
password: "your_password",
});
console.log(result.fullUrl);Default TTL:
30dSupported TTL:
1d7d30d0(Never expires)
Example:
import { uploadFile } from "tmpbox.me";
const result = await uploadFile("./backup.zip", {
username: "your_username",
password: "your_password",
ttl: "0",
});Upload with Access Token
If you already have an access token:
import { uploadFile } from "tmpbox.me";
const result = await uploadFile("./video.mp4", {
token: "YOUR_ACCESS_TOKEN",
});Upload Multiple Files
import { uploadFiles } from "tmpbox.me";
const results = await uploadFiles([
"./image.png",
"./video.mp4",
"./archive.zip",
]);
console.log(results);Upload Progress
import { uploadFile } from "tmpbox.me";
const result = await uploadFile("./video.mp4", {
onProgress(progress) {
console.log(progress.status);
console.log(progress.progress + "%");
},
});Default Behavior
If ttl is omitted, the SDK automatically uses:
ttl: "30d";If authentication is omitted, the SDK automatically uploads as a Guest.
CLI
Guest upload
tmpbox-upload ./video.mp4Login upload
tmpbox-upload ./video.mp4 -u username -p passwordToken upload
tmpbox-upload ./video.mp4 -t YOUR_TOKENMultiple files
tmpbox-upload ./a.zip ./b.mp4 ./c.pdfJSON output
tmpbox-upload ./video.mp4 --jsonEnvironment Variables
Username & Password
TMPBOX_USERNAME=your_username
TMPBOX_PASSWORD=your_passwordToken
TMPBOX_TOKEN=your_access_tokenLegacy variables are also supported:
FILESTORAGE_TOKEN=your_token
UPLOAD_TOKEN=your_tokenAPI
uploadFile()
uploadFile(filePath: string, options?: UploadOptions): Promise<UploadResult>Uploads a single file.
uploadFiles()
uploadFiles(files: string[], options?: UploadOptions): Promise<UploadResult[]>Uploads multiple files.
login()
login(username: string, password: string): Promise<LoginResult>Logs in and returns an access token.
Options
interface UploadOptions {
token?: string;
username?: string;
password?: string;
/**
* Default: "30d"
*
* Guest:
* - "1d"
* - "7d"
* - "30d"
*
* User:
* - "1d"
* - "7d"
* - "30d"
* - "0" (Never expires)
*/
ttl?: "1d" | "7d" | "30d" | "0";
filename?: string;
mimetype?: string;
chunkSize?: number;
wait?: boolean;
timeoutMs?: number;
pollIntervalMs?: number;
onProgress?: (progress: UploadProgress) => void;
}Features
- Guest uploads without registration
- Username & password authentication
- Token authentication
- Automatic retry
- Automatic polling
- Upload progress callback
- CommonJS support
- ES Module support
- TypeScript definitions
- CLI included
License
MIT
