Tại sao bạn nên dùng Wasabi Direct Uploader
- Triển khai tức thì: Chỉ một file PHP, không phụ thuộc thư viện; đặt lên máy chủ là chạy.
- Upload trực tiếp trình duyệt → Wasabi: Máy chủ của bạn chỉ ký URL, không gánh băng thông tệp.
- Chuẩn AWS SigV4: Presigned PUT bảo mật, thời hạn linh hoạt, hoạt động mượt với Wasabi S3 API.
- Tự động xử lý bucket có dấu chấm: Tự chuyển sang path-style để tránh lỗi SSL/Host mismatch.
- Đầu ra đa định dạng: Plain URL, HTML <img>/<a>/<video>, Markdown, BBCode, hoặc template tùy biến.
- UI tối giản, tập trung batch: Một thanh tiến trình tổng, sắp xếp tự nhiên theo tên tệp.
Thông tin phiên bản
- Phiên bản: 1.2.1
- Cập nhật: 2025-12-02
- GitHub: wasabi-direct-uploader
Cấu hình ban đầu
Sau khi tải file PHP lên máy chủ, bạn cần mở phần CONFIG ở đầu file để điền thông tin. Từ phiên bản 1.2.0, công cụ có 2 nhóm cấu hình chính: đăng nhập bảo vệ tool và cấu hình kết nối Wasabi/CDN.
Đây là bước duy nhất cần chỉnh trước khi sử dụng.
USERNAME = Tài khoản đăng nhập để truy cập tool
PASSWORD = Mật khẩu đăng nhập (có thể là plain text hoặc password_hash)
REGION = Vùng Wasabi (ví dụ: ap-southeast-1)
BUCKET = Tên bucket của bạn (hỗ trợ cả bucket có dấu chấm)
ACCESS KEY = Khóa truy cập Wasabi
SECRET KEY = Khóa bí mật Wasabi
CDN_BASE = (tùy chọn) Domain CDN, bỏ trống nếu muốn dùng URL Wasabi
EXPIRES_SECONDS = Thời gian sống của presigned URL (mặc định 3600 giây)
ALLOW_MIME = Danh sách định dạng MIME cho phép ([] = cho phép tất cả)
FORCE_LOWERCASE = true/false, ép tên file về chữ thường
ADD_RANDOM_PREFIX = true/false, thêm prefix ngẫu nhiên 12 hex để tránh trùng
Để tạo mật khẩu mạnh hoặc password_hash, bạn nên dùng công cụ Init Password Generator.
Tính năng nổi bật
- Bảo vệ bằng đăng nhập: chỉ người có tài khoản mới sử dụng được tool, hỗ trợ mật khẩu dưới dạng plain hoặc
password_hash(), chặn luôn APIaction=presignnếu chưa đăng nhập. - Kéo thả nhiều tệp hoặc chọn qua file picker, hỗ trợ mọi định dạng (có thể giới hạn MIME trong cấu hình).
- Key prefix tùy chọn, có thể thêm thư mục ngày
Y/m/dđể quản lý theo thời gian. - Chính sách đặt tên file: giữ nguyên hoặc sanitize + lowercase, tránh ký tự lỗi.
- Ngăn trùng tên: hỗ trợ prefix ngẫu nhiên 12 hex giảm va chạm.
- CDN-ready: điền
CDN_BASEđể xuất URL từ CDN thay vì endpoint Wasabi.
Trường hợp sử dụng tiêu biểu
- Publisher, blogger, marketer: tải nhanh hàng loạt ảnh, lấy HTML/Markdown đưa vào CMS.
- Đội sản phẩm, QA: chia sẻ tệp build, log, ảnh chụp màn hình với URL công khai có kiểm soát.
- Creator nội dung: quản lý asset tĩnh cho landing page, email, tài liệu hướng dẫn.
Yêu cầu và bảo mật
- Máy chủ hỗ trợ PHP (khuyến nghị HTTPS).
- Wasabi bucket đã bật CORS cho PUT/GET từ origin của bạn.
- Khóa truy cập Wasabi được lưu ở server; trình duyệt chỉ nhận presigned URL, không thấy secret key.
Cách cài đặt trong 3 bước

- Tải file
wasabi-direct-uploader.phplên máy chủ web của bạn (ưu tiên HTTPS). - Mở phần CONFIG trong đầu file và điền
REGION,BUCKET,ACCESS KEY,SECRET KEY, tùy chọnCDN_BASE,EXPIRES_SECONDS,ALLOW_MIME. - Cấu hình CORS cho bucket Wasabi để cho phép PUT/GET từ domain đang sử dụng công cụ.
Mẫu CORS tham khảo cho Wasabi
{
"CORSRules": [
{
"AllowedOrigins": ["https://your-domain.com"],
"AllowedMethods": ["PUT", "GET", "HEAD"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
}
Hướng dẫn sử dụng nhanh
- Mở công cụ trong trình duyệt, nhập Key prefix nếu muốn (ví dụ
uploads/project-a). - Chọn Output format: Plain, HTML, Markdown, BBCode, hoặc Custom với placeholder
{url} {name} {base} {ext} {i}. - Kéo thả hoặc chọn tệp, nhấn Upload.
- Sao chép kết quả từ ô Output để dán vào CMS, website hoặc tài liệu.
Mẹo tối ưu
- SEO và tốc độ: dùng CDN cho domain ảnh/tệp tĩnh; bật nén và cache hợp lý.
- Quy ước thư mục: tổ chức theo ngày hoặc theo dự án để dễ dọn dẹp và tra cứu.
- Giới hạn MIME: trong môi trường public, nên giới hạn
$ALLOW_MIMEđể giảm rủi ro. - Bucket có dấu chấm: công cụ tự chuyển path-style; không cần đổi tên bucket.
Mở rộng: tích hợp đăng nhập và xác thực
Công cụ có thể được mở rộng để chỉ cấp presigned URL cho người dùng hợp lệ. Một số hướng triển khai phổ biến:
- Basic Auth trên web server: bảo vệ trang PHP bằng HTTP Basic Auth (Apache/Nginx). Nhanh, đơn giản cho nội bộ.
- Session-based login: thêm form đăng nhập (username/password), lưu phiên trong
$_SESSION, kiểm tra trước khi xử lý?action=presign. - JWT/Bearer token: tách phần presign thành endpoint API; chỉ trả về URL khi header Authorization hợp lệ (JWT ký bằng khóa riêng).
- SSO/OAuth2/OpenID Connect: tích hợp Google/Microsoft/Keycloak. Sau khi callback thành công, gán vai trò và giới hạn quyền presign.
- Chính sách truy cập tinh chỉnh: ràng buộc prefix theo người dùng hoặc nhóm; log lại các lần presign (IP, user, file list).
- Biện pháp an toàn bổ sung: CSRF token cho form, rate limit theo IP/user, nonce ngắn hạn, hạn mức dung lượng/ngày, ẩn thông tin lỗi nhạy cảm.
Với các mô hình trên, bạn chỉ cần chặn truy cập vào endpoint presign nếu chưa đăng nhập, và truyền thêm thông tin user để áp chính sách prefix/giới hạn tệp. Toàn bộ luồng upload vẫn giữ nguyên: trình duyệt tải thẳng lên Wasabi bằng presigned URL.
Câu hỏi thường gặp
1) Máy chủ của tôi có lưu file không?
Không. Trình duyệt của bạn upload trực tiếp lên Wasabi bằng presigned URL do máy chủ ký.
2) Có cần SDK AWS không?
Không. Công cụ dùng SigV4 thuần PHP.
3) Có hỗ trợ video hoặc tài liệu?
Có. Bạn có thể xuất URL hoặc dùng định dạng HTML/Markdown/BBCode tùy mục đích hiển thị.
4) Tôi dùng bucket có dấu chấm, có vấn đề SSL không?
Không. Công cụ tự động dùng path-style cho trường hợp này.
Kết luận
Wasabi Direct Uploader giúp rút gọn toàn bộ quy trình tải lên và chia sẻ tệp: kéo thả, upload, nhận URL/HTML/Markdown trong một bước. Dễ triển khai, an toàn, mở rộng linh hoạt theo nhu cầu, đây là công cụ “dùng ngay” để bạn chuẩn hóa luồng nội dung tĩnh trên hạ tầng Wasabi.
Bình luận