Skip to content

brokensmile2103/wasabi-direct-uploader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Wasabi Direct Uploader

A single-file self-hosted PHP tool for directly uploading files to Wasabi (or any S3-compatible storage) using presigned PUT URLs -- no SDK required.

It ships with a clean dark UI, simple login, drag & drop multi-upload, global progress tracking, and share-ready output in multiple formats (URLs, HTML, Markdown, BBCode, or custom templates).

Wasabi Direct Uploader UI

Features

  • 🧩 One PHP file, no external dependencies
  • 🔐 Session-based login with optional hashed password support & rate limiting
  • ☁️ Direct browser → Wasabi upload via presigned PUT
  • 📂 Smart prefix, date folders, lowercase & random filename handling
  • 🖼️ HTML, Markdown, BBCode, custom template outputs
  • 📊 Global batch progress tracking
  • 📐 Auto-detected image/video width & height
  • 🧱 Optional MIME allowlist
  • 🌐 CDN base URL override support

Requirements

  • PHP ≥ 7.4 (recommended 8.0+)
  • Enabled extensions: hash, json, openssl, mbstring
  • HTTPS server
  • Wasabi or S3-compatible storage bucket with CORS enabled

Installation

  1. Upload wasabi-direct-uploader.php to a PHP-enabled server.
  2. Access it via HTTPS.
  3. Protect it from public indexing.

Configuration

Edit the CONFIG section in the PHP file:

$WASABI_REGION = '';
$WASABI_BUCKET = '';
$AWS_ACCESS_KEY = '';
$AWS_SECRET_KEY = '';
$CDN_BASE = '';
$EXPIRES_SECONDS = 3600;
$ALLOW_MIME = [];
$FORCE_LOWERCASE = true;
$ADD_RANDOM_PREFIX = true;

Login configuration:

define('USERNAME', 'admin');
define('PASSWORD', 'Admin@123');

PASSWORD can be stored as plain text or as a secure hash generated by password_hash(). You can generate both using Init Password Generator.

Usage

  1. Set up bucket CORS.
  2. Open the tool in your browser.
  3. Login.
  4. Drag & drop files.
  5. Click Upload.
  6. Copy output.

Security Notes

  • Always use HTTPS.
  • Change default credentials.
  • Restrict MIME types if needed.
  • Use short presign expiration times.

License

MIT License — free to use, modify, and distribute for personal and commercial projects.

Part of Self-Hosted Tools

This tool is part of the Self-Hosted Tools – Lightweight, developer-friendly utilities for upload and storage — a set of fully self-hosted utilities built for developers who value simplicity, security, and performance.

About

Self-hosted PHP tool for direct Wasabi/S3 uploads using presigned PUT URLs with drag & drop UI and multi-format output.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages