Title: Kybern S3 Storage
Author: KybernAI
Published: <strong>Июнь 21, 2026-ж.</strong>
Last modified: Сентябрь 6, 2026-ж.

---

Плагиндерди издөө

![](https://ps.w.org/kybern-s3-storage/assets/banner-772x250.png?rev=3580784)

![](https://ps.w.org/kybern-s3-storage/assets/icon-256x256.png?rev=3580784)

# Kybern S3 Storage

 Автору [KybernAI](https://profiles.wordpress.org/kybern/)

[Жүктөө](https://downloads.wordpress.org/plugin/kybern-s3-storage.2.6.7.zip)

 * [Кенен маалымат](https://ky.wordpress.org/plugins/kybern-s3-storage/#description)
 * [Сын-пикирлер](https://ky.wordpress.org/plugins/kybern-s3-storage/#reviews)
 *  [Орнотуу](https://ky.wordpress.org/plugins/kybern-s3-storage/#installation)
 * [Development](https://ky.wordpress.org/plugins/kybern-s3-storage/#developers)

 [Колдоо](https://wordpress.org/support/plugin/kybern-s3-storage/)

## Сүрөттөө

Kybern S3 Storage can keep regular WordPress Media Library files local while offloading
attachments matched by configured Fluent Forms routing rules. It can also use one
FileBird folder as the local exception: attachments assigned to any other FileBird
folder are queued for S3 offload, while unfiled uploads remain local until an editor
assigns a folder. Offloaded attachment URLs remain usable from WordPress, and the
plugin can restore them 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 only those routed 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.
 * Preserve old `/wp-content/uploads/...` links for offloaded private files by redirecting
   them through signed S3 URLs.
 * 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 non-secret plugin settings as JSON without exposing AWS credentials.
 * 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 copies of routed uploads should be deleted after successful upload
 * A Local FileBird Folder ID that keeps one folder on the server while all other
   assigned FileBird folders offload to S3
 * Whether S3 offload is limited to Form Routing Rules when no Local FileBird Folder
   ID is configured
 * 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
 * Multiple dedicated FileBird folders for Circulars, with year-based S3 keys such
   as `circolari/2026/1234-circolare.pdf`
 * An administrator-only, resumable Circulars reorganisation tool for already offloaded
   PDFs
 * An administrator-only, read-only S3 Delivery Health audit with background batches,
   status, and retryable failed checks
 * An opt-in five-minute Circulars S3 incoming importer for verified direct S3 PDF
   uploads
 * An authenticated KybernAI callback for registering a PDF already uploaded to 
   its final Circulars S3 path

### 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.

## Скриншоттор

[⌊S3 settings screen for configuring bucket credentials, URL delivery options, and
the root prefix used for media offload.⌉⌊S3 settings screen for configuring bucket
credentials, URL delivery options, and the root prefix used for media offload.⌉[

S3 settings screen for configuring bucket credentials, URL delivery options, and
the root prefix used for media offload.

[⌊Advanced S3 delivery controls with Fluent Forms and FileBird routing rules for
sending selected uploads into custom paths and folders.⌉⌊Advanced S3 delivery controls
with Fluent Forms and FileBird routing rules for sending selected uploads into custom
paths and folders.⌉[

Advanced S3 delivery controls with Fluent Forms and FileBird routing rules for sending
selected uploads into custom paths and folders.

[⌊Brevo and FileBird PDF workflow settings for routing protected PDF uploads through
Media Library, FileBird, and S3.⌉⌊Brevo and FileBird PDF workflow settings for routing
protected PDF uploads through Media Library, FileBird, and S3.⌉[

Brevo and FileBird PDF workflow settings for routing protected PDF uploads through
Media Library, FileBird, and S3.

[⌊Background migration and recovery dashboards for offloading existing Media Library
files and restoring local copies in batches.⌉⌊Background migration and recovery 
dashboards for offloading existing Media Library files and restoring local copies
in batches.⌉[

Background migration and recovery dashboards for offloading existing Media Library
files and restoring local copies in batches.

[⌊Recovery and settings import/export tools for restoring files from S3 and moving
the plugin configuration between sites.⌉⌊Recovery and settings import/export tools
for restoring files from S3 and moving the plugin configuration between sites.⌉[

Recovery and settings import/export tools for restoring files from S3 and moving
the plugin configuration between sites.

## Орнотуу

 1.  Upload the `kybern-s3-storage` folder to `/wp-content/plugins/`.
 2.  Activate the plugin through the WordPress Plugins screen.
 3.  Go to `Settings > Kybern S3 Storage`.
 4.  Enter your S3 bucket configuration.
 5.  Set the bucket name to `my-site-media` or your preferred no-dot bucket name.
 6.  Set the root prefix you want to use in the bucket, for example `example.com/media-
     library`.
 7.  If you want selected uploads routed into a custom path, add a form routing rule
     and optionally the FileBird folder ID or folder name.
 8.  Save the settings.
 9.  Run the S3 connection test.
 10. If needed, start the background migration to offload eligible attachments in non-
     Local FileBird folders, or attachments matched by Form Routing Rules when folder
     scope is not configured.
 11. To route Circulars, enter the comma-separated FileBird folder IDs used for the
     Circulars year folders, for example `56,52,28,27`, and keep the Circulars S3 Subdirectory
     as `circolari`.
 12. Assign new Circular attachments to one of those FileBird folders. Kybern will 
     queue the upload and store the files under `circolari/[year]/` while keeping the
     permanent WordPress URL.
 13. Use `S3 Delivery Health` after configuration changes or a migration to verify 
     every saved S3 mapping. The audit reads S3 metadata only and never repairs, moves,
     downloads, or deletes files.
 14. To import a Circular uploaded directly to S3, enable **S3 Circulars Import** and
     upload only to `circolari/incoming/[year]/`, for example `circolari/incoming/2026/
     Circolare-N.01-2026.pdf`. The importer runs every five minutes, creates a Media
     Library item, assigns the matching `CIRCOLARI YYYY` FileBird folder, verifies 
     the final remote object, and removes the incoming source only after the mapping
     is saved.

## FAQ.KG

### 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.

### Do old upload links from form email notifications still work with a private bucket?

Yes. Since version 2.1.2, when signed URLs are enabled, Kybern S3 Storage keeps 
the original `/wp-content/uploads/...` link stable and generates a fresh signed 
S3 URL only when the link is opened. This prevents old emails, circular links and
cached pages from retaining an expired 15-minute S3 URL while the bucket remains
private.

### 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. AWS access keys, secret 
keys, and session tokens are never included, so configure credentials separately
on the destination site.

### 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.

### How does Circulars routing work?

Set the comma-separated Circulars FileBird Folder IDs in the Transfer Fluent Forms
to FileBird Folders Workflow section. When a new, not-yet-offloaded attachment is
assigned to one of those folders, Kybern stores its main file and generated sizes
under the configured root prefix followed by `circolari/[year]/`. The attachment
ID is included in the object name to prevent files with the same filename from overwriting
one another.

This route does not automatically change historical S3 objects or saved mappings.
Historical Circulars are changed only when an administrator explicitly starts the
controlled reorganisation workflow described below.

### How does the S3 Circulars incoming importer work?

The importer is disabled by default. When enabled, it inspects only the configured
incoming prefix below the plugin Root Prefix, which defaults to `circolari/incoming/`.
It accepts only files stored directly in a four-digit year folder whose filename
begins with `Circolare` and ends in `.pdf`, for example `circolari/incoming/2026/
Circolare-N.01-2026.pdf`.

Every five minutes it verifies the source object, downloads it temporarily to confirm
the PDF signature and size, creates the WordPress Media Library attachment, assigns
the configured `CIRCOLARI 2026` FileBird folder, copies and verifies the final object
at `circolari/2026/[attachment-id]-[filename]`, saves the WordPress mapping, and
then deletes both the local temporary copy and the incoming S3 object. Existing `
circolari/[year]/` archive objects are never listed or changed. A saved incoming-
source reference prevents duplicate attachments if a cleanup retry is needed.

### How does KybernAI direct Circular registration work?

For the KybernAI platform, enable **KybernAI Direct Circular Import** instead of
the incoming importer. After KybernAI has uploaded a PDF to its final S3 location
under `circolari/[year]/`, it sends the exact object key to the authenticated WordPress
endpoint. The plugin verifies that the key belongs to the configured Circulars archive,
confirms the PDF signature and size, creates the Media Library attachment, assigns
the configured `CIRCOLARI YYYY` FileBird folder, and maps that same S3 object to
the permanent WordPress upload URL.

The direct integration never lists the archive, moves objects, creates a second 
final object, or deletes the original S3 PDF. A saved source key makes repeated 
KybernAI notifications idempotent.

### How does the Circulars S3 reorganisation work?

Use the two-step guide in the Circulars S3 Reorganisation panel. In Step 1, select
the Circulars year and click **Preview Eligible PDFs**. The preview does not move
files or change WordPress mappings. Wait for its confirmation, then verify the year
and totals shown in **Latest Preview** before continuing.

In Step 2, select the same verified year, choose the batch size, and click **Start
or Resume Circulars Reorganisation**. Follow the live progress bar while WordPress
processes background batches. The run is finished when its status is **Completed**
and progress reaches 100%. Use **Retry Failed Circulars** only if failed IDs remain
after the main run.

The selected `CIRCOLARI YYYY` FileBird folder is the authoritative year: this supports
documents imported after their publication year. The worker selects only attachments
that are PDFs, assigned to that configured Circulars FileBird folder, and whose 
stored filename begins with `Circolare`, or whose attachment title begins with `
Circolare` when a legacy `CIRC...` filename was retained.

For every eligible attachment, the worker copies each mapped S3 object to `circolari/[
year]/[attachment-id]-[filename]`, verifies the copied object size, updates the 
WordPress mapping, and only then removes the previous S3 object. It runs in resumable
background batches, with preview, stop, and retry controls. Attachments without 
a stored S3 mapping are reported but left unchanged.

### What does S3 Delivery Health check?

The administrator-only delivery audit checks every attachment marked as offloaded
and every S3 object saved in its WordPress mapping. It uses S3 metadata requests
only, so it does not download media or modify WordPress, local uploads, or S3. A
failed check remains queued for a controlled retry and is not repaired automatically.
Use it after a bulk operation, changing S3 credentials or paths, or when diagnosing
a missing file.

## Сын-пикирлер

There are no reviews for this plugin.

## Contributors & Developers

“Kybern S3 Storage” is open source software. The following people have contributed
to this plugin.

Мүчөлөрү

 *   [ KybernAI ](https://profiles.wordpress.org/kybern/)

[Translate “Kybern S3 Storage” into your language.](https://translate.wordpress.org/projects/wp-plugins/kybern-s3-storage)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/kybern-s3-storage/),
check out the [SVN repository](https://plugins.svn.wordpress.org/kybern-s3-storage/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/kybern-s3-storage/)
by [RSS](https://plugins.trac.wordpress.org/log/kybern-s3-storage/?limit=100&mode=stop_on_copy&format=rss).

## Өзгөртүүлөр

#### 2.6.7

 * Retained failed FileBird S3 uploads in a durable queue with automatic delayed
   retries and administrator-visible errors.
 * Added administrator controls to retry failed uploads and requeue locally available
   Circular PDFs by year for S3 verification.
 * Removed AWS credentials and session tokens from exported settings files.

#### 2.6.6

 * Added a guided two-step interface for previewing and starting Circulars S3 reorganisation
   safely.
 * Added clear preview validation, live-progress completion, stop, and failed-item
   retry guidance.
 * Documented the complete two-step Circulars workflow in both plugin readme files.

#### 2.6.5

 * Separated S3, Fluent Forms, and Brevo configuration into individual modern settings
   cards.
 * Updated both workflow headings and applied the Dashboard status-table styling
   to their settings tables.
 * Added a responsive sticky save action while preserving one secure WordPress settings
   form.

#### 2.6.4

 * Split the admin interface into dedicated Dashboard and Settings views with accessible
   navigation tabs.
 * Moved connection testing and all background-operation tools to Dashboard while
   keeping configuration fields in Settings.
 * Avoided loading operation state and progress polling while editing settings.

#### 2.6.3

 * Restored readable dark text in success and error notices on the Kybern S3 Storage
   admin page.

#### 2.6.2

 * Redesigned the settings and background-operation interface with responsive cards
   and clearer action groups.
 * Added live progress bars, elapsed time, and estimated remaining time for migration,
   delivery audit, Circulars reorganisation, incoming import, and recovery.
 * Added protected status polling and reliable per-operation totals without reloading
   the settings page.
 * Reordered start, stop, retry, and preview controls to match each operation’s 
   workflow.

#### 2.6.1

 * Added authenticated KybernAI direct Circular registration for PDFs already stored
   in the final `circolari/[year]/` S3 archive.
 * Created the matching WordPress Media Library attachment and FileBird year assignment
   without scanning, copying, moving, or deleting the final S3 object.
 * Added exact-object duplicate protection and PDF size/signature verification for
   the direct callback.

#### 2.6.0

 * Added an opt-in five-minute S3-to-WordPress importer for direct Circular PDF 
   uploads placed in the dedicated `circolari/incoming/[year]/` prefix.
 * Restricted imports to verified `Circolare*.pdf` files, a configured FileBird 
   Circulars year folder, a 50 MB limit, and a PDF signature check.
 * Added copy-and-size verification, duplicate protection, incoming-source cleanup
   only after WordPress mapping, and administrator-visible import status.

#### 2.5.1

 * Replaced private S3 PDF-preview thumbnails in the WordPress Media Library grid
   with WordPress’s local document icon.
 * Kept the original protected document URL and signed S3 delivery unchanged when
   an editor opens or downloads a PDF.
 * Removed the per-document redirect and remote-preview waterfall that delayed the
   Media Library when CVs and Circulars were visible.

#### 2.5.0

 * Added an administrator-only S3 Delivery Health audit that verifies every saved
   remote object mapping in safe background batches.
 * Added live audit status for attachments checked, healthy attachments, S3 objects
   checked, failed checks and queued attachment IDs.
 * Added stop and retry controls. The audit is read-only: it never downloads, moves,
   repairs or deletes files.

#### 2.4.2

 * Verified every mapped S3 object and its size before allowing local attachment
   files to be removed.
 * Re-uploaded a mapped file when its remote object is missing or does not match
   the local size, instead of trusting a stale mapping.
 * Kept the local file and returned a clear error if upload verification cannot 
   complete.
 * Restored private S3 delivery for generated image sizes whose paths are stored
   in an attachment object map, preventing costly WordPress 404 pages in the Media
   Library.

#### 2.4.1

 * Updated historical Circulars reorganisation to identify the selected FileBird
   year folder as the authoritative year, rather than the later WordPress upload
   date.
 * Added compatibility for historical Circular PDFs whose stored filenames use legacy`
   CIRC...` names but whose attachment titles begin with `Circolare`.
 * Documented the selective S3 operating rule: keep normal editorial media local
   and use S3 only for approved form documents and Circular PDF folders.

#### 2.4.0

 * Added an administrator-only, resumable Circulars S3 reorganisation workflow for
   historical files.
 * Added preview, stop, and retry controls with per-item status reporting.
 * Restricted relocation to PDF attachments in configured Circulars FileBird folders,
   for the selected upload year, whose stored filename begins with `Circolare`.
 * Added server-side S3 copy and object-size verification before WordPress mappings
   are changed and old objects are removed.

#### 2.3.0

 * Added a dedicated FileBird Circulars route with year-based S3 object keys.
 * Preserved permanent WordPress attachment URLs and Kybern object mappings.
 * Prevented filename collisions by including the attachment ID in new Circular 
   object keys.
 * Left existing S3-only attachments and WPvivid backup paths unchanged.

#### 2.2.1

 * Added a direct Settings link on the Plugins screen.

#### 2.2.0

 * Added FileBird folder-based offload scope with one Local folder exception.
 * Moving an attachment to a non-Local FileBird folder queues S3 offload without
   blocking the Media Library UI.
 * Moving an existing S3-only attachment into the configured Local folder restores
   its local files automatically.
 * Kept unfiled uploads local until an editor assigns a FileBird folder.

#### 2.1.4

 * Added form-routing-only S3 scope: ordinary Media Library uploads remain local
   while configured Fluent Forms routing rules continue to offload to S3.
 * Restricted local-file deletion to successfully offloaded routed attachments.
 * Kept the Brevo and FileBird workflow local when form-routing-only scope is enabled.
 * Prevented background migration from scanning ordinary Media Library attachments
   in form-routing-only mode.

#### 2.1.3

 * Serve restored local media files directly instead of redirecting them back through
   S3.
 * Keep explicitly marked static attachments, and future files named as logos or
   headers, in local WordPress uploads after offload.
 * Preserve S3 offload for ordinary Media Library files while protecting theme branding
   and header delivery.

#### 2.1.2

 * Kept private attachment, image-size and srcset links on stable WordPress uploads
   URLs.
 * Generated a fresh signed S3 URL at request time through the existing legacy-upload
   redirect.
 * Prevented cached pages and form emails from retaining expired signed URLs.

#### 2.1.1

 * Added legacy uploads URL handling for offloaded Media Library files.
 * Fixed old form-upload email links so private S3 buckets return signed URLs instead
   of unsigned S3 redirects.
 * Removed the need for static Apache S3 redirect rules for offloaded routed documents.

#### 2.1.0

 * Confirmed compatibility with WordPress 7.1.
 * Updated the plugin author link to KybernAI.
 * Optimized migration and recovery batches to avoid slow Media Library meta queries.

#### 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.

## Мета

 *  Нуска **2.6.7**
 *  Акыркы жаңыртуу **2 күн мурун**
 *  Активдүү орнотуулар **Fewer than 10**
 *  WordPress нускасы ** 6.2 же андан жогору **
 *  Tested up to **7.1**
 *  PHP нускасы ** 7.4 же андан жогору **
 *  Тил
 * [English (US)](https://wordpress.org/plugins/kybern-s3-storage/)
 * Тег:
 * [amazon s3](https://ky.wordpress.org/plugins/tags/amazon-s3/)[filebird](https://ky.wordpress.org/plugins/tags/filebird/)
   [fluent forms](https://ky.wordpress.org/plugins/tags/fluent-forms/)[media library](https://ky.wordpress.org/plugins/tags/media-library/)
   [offload media](https://ky.wordpress.org/plugins/tags/offload-media/)
 *  [Advanced View](https://ky.wordpress.org/plugins/kybern-s3-storage/advanced/)

## Рейтинг

Азырынча эч кандай сын-пикир жок.

[Your review](https://wordpress.org/support/plugin/kybern-s3-storage/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/kybern-s3-storage/reviews/)

## Мүчөлөрү

 *   [ KybernAI ](https://profiles.wordpress.org/kybern/)

## Колдоо

Комментарийлер барбы? Жардам керекпи?

 [Колдоо форумун көрүү](https://wordpress.org/support/plugin/kybern-s3-storage/)