FlexUploader gives you a flexible, embeddable file upload interface that sends files straight to Amazon S3. Place it on any page, let users upload one file or many, and every upload lands in both your S3 bucket and a dedicated Uploads custom post type — automatically catalogued and available for use anywhere else in WordPress.
What You Get Out of the Box
- Embeddable upload interface — place the upload block on any page or post. Users can select and upload multiple files in a single session without leaving the page.
- Direct-to-S3 delivery — files are transferred straight to your configured S3 bucket. No storing uploads on your server.
- S3 sync — run a sync at any time to scan your S3 bucket and pull in files that exist there but haven’t been registered in WordPress yet.
- Uploads CPT — every file, whether uploaded through the interface or discovered during a sync, is automatically created as an entry in the Uploads custom post type. Each entry stores the file’s S3 key, URL, file type, and upload metadata.
- Multi-file support — the upload interface handles multiple files in a single session, queuing and uploading them in sequence with per-file progress feedback.
The Uploads CPT
Every file that passes through FlexUploader — whether uploaded by a user or found during an S3 sync — becomes an entry in the Uploads custom post type. This makes your S3 files first-class WordPress objects: queryable, filterable, and usable in templates, REST API responses, or any other plugin that works with post types.
Each Upload entry stores:
- The S3 object key and public URL
- File type and size
- Upload source (user upload or sync)
- The date the file was first registered
S3 Sync
The sync feature scans your configured S3 bucket and compares it against existing Upload entries. Any S3 object that doesn’t yet have a corresponding entry is registered automatically. This is useful for bootstrapping — if you already have files in S3 before installing the plugin, a single sync brings everything into WordPress without manual entry.
Sync can be triggered manually from the WordPress admin or via a scheduled event, keeping your Upload library in step with your bucket automatically.
Setup
- Install and activate the plugin.
- Go to FlexUploader → Settings and enter your AWS credentials: Access Key ID, Secret Access Key, region, and bucket name.
- Place the FlexUploader block on any page where you want the upload interface to appear.
- Optionally run an initial S3 Sync from the admin to import any files already in your bucket.
Once configured, uploads from the front end flow directly to S3 and appear in the Uploads CPT with no further action needed.
