Description
Kybern S3 Storage moves WordPress Media Library files into an Amazon S3 bucket while keeping attachment URLs usable from WordPress, and it can restore those offloaded files back into local uploads later if you need a fallback.
It also adds optional Fluent Forms, FileBird, and protected PDF upload workflows:
- Route selected Fluent Forms IDs into custom upload subdirectories such as
documents. - Offload those uploads into your S3 root prefix.
- Assign matching Media Library attachments into a chosen FileBird folder.
- Auto-create FileBird folders by name when a rule does not specify a folder ID.
- Generate signed URLs for private buckets.
- Use CloudFront-compatible public delivery URLs for public buckets.
- Queue migration batches in WordPress cron instead of one browser request.
- Restore offloaded Media Library files from S3 back into local WordPress uploads with one recovery action.
- Retry failed migration items without rerunning the whole library.
- Export and import plugin settings as JSON.
- Test your S3 credentials and permissions before migrating.
The plugin adds a settings page where you can configure:
- Bucket name
- Region
- Optional custom endpoint
- Optional public base URL or CDN URL
- Optional CloudFront base URL
- Root S3 prefix such as
example.com/media-library - Whether local files should be deleted after successful upload
- Whether private-bucket signed URLs should be used
- Per-form Fluent Forms routing rules
- Which FileBird folder should receive matching uploads, by ID or by auto-created folder name
External services
This plugin connects to an S3-compatible object storage service that you configure, such as Amazon S3 or another provider with an S3-compatible API.
It sends:
- Uploaded file contents when offloading Media Library items or workflow-specific uploads
- File names, MIME types, and object keys derived from your WordPress upload paths
- Request metadata required by the S3 API, including bucket name, region, endpoint path, and AWS Signature V4 authorization headers generated from your configured credentials
This happens only when you:
- Run the S3 connection test
- Offload new or existing files to your configured bucket
- Delete remote objects during cleanup
- Recover an offloaded file back into local WordPress uploads
Service providers may include:
- Amazon S3: https://aws.amazon.com/s3/
- Any S3-compatible endpoint you configure yourself
If you use Amazon S3, review:
- AWS Customer Agreement: https://aws.amazon.com/agreement/
- AWS Service Terms: https://aws.amazon.com/service-terms/
- AWS Privacy Notice: https://aws.amazon.com/privacy/
If you use another S3-compatible provider, review that provider’s terms of service and privacy policy before enabling offload.
Screenshots





Installation
- Upload the
kybern-s3-storagefolder to/wp-content/plugins/. - Activate the plugin through the WordPress Plugins screen.
- Go to
Settings > Kybern S3 Storage. - Enter your S3 bucket configuration.
- Set the bucket name to
my-site-mediaor your preferred no-dot bucket name. - Set the root prefix you want to use in the bucket, for example
example.com/media-library. - If you want selected uploads routed into a custom path, add a form routing rule and optionally the FileBird folder ID or folder name.
- Save the settings.
- Run the S3 connection test.
- Start the background migration to offload existing Media Library items in batches.
FAQ
-
Does this plugin replace Cloud Storage Manager for Fluent Forms?
-
Yes, if your goal is to keep one owner for S3 offload and avoid overlapping Fluent Forms upload logic.
-
Does FileBird change the real upload path in WordPress?
-
No. FileBird organizes Media Library attachments, while Kybern S3 Storage controls the remote S3 object key structure for matched uploads.
-
Do Fluent Forms file fields need to save into the Media Library?
-
Yes, if you want FileBird assignment and consistent Media Library offload behavior.
-
Can I use a private bucket?
-
Yes. Enable signed URLs and set the expiration window that best fits your caching and access needs.
-
What bucket name should I use for public files?
-
For direct public S3 URLs, prefer a bucket name without dots, such as
my-site-media. AWS documents SSL limitations for virtual-hosted bucket names that contain periods. -
Can I use CloudFront with this plugin?
-
Yes. Enable CloudFront delivery and enter the distribution or custom CDN base URL to serve public files without exposing direct S3 URLs.
-
Can I export these settings to another site?
-
Yes. The plugin can export and import settings as JSON. The export includes secrets, so treat the file as sensitive.
-
Can I delete local copies immediately?
-
Yes, but it is safer to leave local copies enabled until you have confirmed your S3 URLs, permissions, and backups.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Kybern S3 Storage” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Kybern S3 Storage” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.2.6
- Replaced the inline settings-page script with a properly enqueued admin script.
- Expanded the external services disclosure for Amazon S3 and other S3-compatible providers.
- Updated WordPress compatibility metadata for the current release.
0.2.5
- Replaced discouraged temporary file deletion calls with WordPress-native file deletion.
- Hardened settings import temp-file validation.
- Reworked background batch attachment lookups to avoid direct SQL queries.
- Added the missing languages directory expected by the plugin header.
0.2.4
- Added a recovery workflow that restores offloaded Media Library files from S3 back into the local WordPress uploads directory.
- Added a background recovery section and button on the settings page.
- Added S3 object download support to the bundled client.
0.2.3
- Reworked Fluent Forms routing so uploads are tagged after processing instead of overriding the live upload path.
- Fixed the form rule flow that could break Fluent Forms AJAX uploads with a 500 error.
0.2.2
- Removed the Fluent Forms temporary upload path override that could trigger 500 errors during AJAX file uploads.
0.2.1
- Added FileBird folder auto-create by folder name.
- Added retry mode for failed migration items.
- Added settings export and import.
- Added CloudFront-compatible delivery mode for public files.
- Improved migration status display and retry safety.
0.2.0
- Added per-form Fluent Forms routing rules.
- Added signed URL support for private buckets.
- Added S3 connection test.
- Added cron-backed background migration.
- Improved S3-compatible endpoint handling.
0.1.0
- Initial release.
- S3 offload for WordPress Media Library attachments.
- Attachment URL rewriting for original images and image sizes.
- Fluent Forms routing into a dedicated subdirectory.
- Optional FileBird folder assignment for HR uploads.
- Admin migration tool for existing Media Library items.
