BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
leosp icon
Actively maintained Tested with WP 7.1

leosp

Offload media library files to S3-compatible object storage such as Amazon S3, Tencent COS, Aliyun OSS, Qiniu, and Cloudflare R2.

Active installs<10New
Downloads · 30d106• 0% vs prev. 30d
Rating—0 reviews
Health score64/100Good
All-time downloads105Since Sep 2026
Support resolved—No recent threads
RequiresWP 6.0PHP 8.1+
Downloads · 7d19▼ -20.8% week over week
Our verdict

Solid choice

leosp is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 2 weeks ago, and scores 64/100 on our health check.

  • Actively developed — last update 2 weeks ago
  • Tested with the latest WordPress (7.1)
  • Small user base (<10 active installs)
  • Very few reviews so far
  • Needs PHP 8.1 or newer

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

102030Sep 21Sep 29Oct 7
Yesterday2
Daily average (1y)6
Peak day41Sep 21, 2026
Last 12 months106

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where leosp stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
cdn >100 3,659 Best cdn plugins →
cloud >100 2,987 Best cloud plugins →
media >100 10,000 Best media plugins →
object storage >100 1,059 Best object storage plugins →
s3 >100 422 Best s3 plugins →

About leosp

From the official readme · v1.1.4

Description

LEOSP (Object Storage Plugin) is a general-purpose S3-compatible object storage plugin built on the AWS SDK for PHP. It offloads media library images and attachments from the web server to object storage, reduces local disk and bandwidth usage, and can serve files through a custom CDN domain.

Use cases

  • Sites with many images or attachments and limited disk or I/O
  • Multi-server setups that need a shared media store
  • Providers such as Amazon S3, Tencent COS, Aliyun OSS, Qiniu Kodo, Cloudflare R2, and other S3-compatible APIs
  • Faster delivery via a custom domain or CDN

Features

  • Upload original media files to object storage automatically
  • Rewrite attachment URLs for front-end delivery via object storage or a custom domain
  • Upload thumbnails asynchronously with WP-Cron to avoid blocking uploads
  • Optional “do not keep local copies” mode after a successful remote upload
  • One-click bucket connection test in the admin settings
  • Automatic retry for failed thumbnail uploads (with a retry limit)
  • Admin error logs, clear logs, and manual retry by attachment ID
  • SecretKey encrypted with AES-GCM and never shown in plain text in the admin UI

Technical notes

  • Only files going through the media library upload flow (wp_handle_upload) are handled. Theme/plugin assets and page-builder generated CSS/JS caches are not migrated.
  • Existing historical media is not migrated automatically.
  • Since 1.1.0 the bundled AWS SDK is an S3-only build under vendor/ (about 5MB).
  • Development dependencies are defined in composer.json (included in this plugin).

This plugin relies on third-party object storage services that you configure. See External services below for details about what is sent, when, and where.

Plugin homepage

https://www.lezaiyun.com/leosp.html

Author

LaoJiang — https://www.laojiang.me/

External services

This plugin is an interface to S3-compatible object storage. It does not phone home to the plugin author. Outbound connections happen only after an administrator configures storage credentials and enables media offload (or uses Test connection). By configuring a provider, you consent to sending media and related API requests to that provider.

Depending on your settings, the plugin may use one or more of the services below.

Amazon S3

  • What it is / used for: Cloud object storage. Used to store and serve media library files when no custom Endpoint is set (default public URL format: https://{bucket}.s3.{region}.amazonaws.com/{key}), and for S3 API calls such as upload, delete, and connection tests.
  • What data is sent and when:
    • Media file contents (originals and thumbnails) when a file is uploaded or when thumbnail sync runs.
    • Object keys / paths and bucket metadata for upload, delete, and HeadBucket connection tests.
    • AccessKey / SecretKey (or equivalent credentials) are used to sign API requests; they are stored on your site and sent only to the configured storage endpoint as part of authenticated S3 API calls.
    • Site visitors requesting media may download files directly from Amazon S3 (or your CDN / custom domain) when attachment URLs are rewritten.
  • Service: Amazon S3
  • Terms of Service: https://aws.amazon.com/service-terms/
  • Privacy Policy: https://aws.amazon.com/privacy/

User-configured S3-compatible providers (optional)

If you fill in a custom Endpoint and/or custom domain, API traffic and media delivery go to the provider you choose instead of (or in addition to) the default Amazon S3 URL pattern. Common examples:

Tencent Cloud COS

  • Used for media storage and delivery when you configure a Tencent COS endpoint/bucket.
  • Same categories of data as above (media files, object keys, signed API requests) are sent to Tencent Cloud when you upload, delete, test the connection, or when visitors load rewritten media URLs.
  • Service: https://cloud.tencent.com/product/cos
  • Terms: https://cloud.tencent.com/document/product/301/17345
  • Privacy: https://www.tencentcloud.com/document/product/301/17346

Alibaba Cloud OSS

  • Used for media storage and delivery when you configure an Aliyun OSS endpoint/bucket.
  • Same categories of data as above are sent to Alibaba Cloud under the same conditions.
  • Service: https://www.alibabacloud.com/product/oss
  • Terms: https://www.alibabacloud.com/help/legal/latest/alibaba-cloud-international-website-product-terms-of-service
  • Privacy: https://www.alibabacloud.com/help/legal/latest/alibaba-cloud-international-website-privacy-policy

Qiniu Cloud Kodo

  • Used for media storage and delivery when you configure a Qiniu S3-compatible endpoint/bucket.
  • Same categories of data as above are sent to Qiniu under the same conditions.
  • Service: https://www.qiniu.com/products/kodo
  • Terms: https://www.qiniu.com/agreements/user-agreement
  • Privacy: https://www.qiniu.com/agreements/privacy-right

Cloudflare R2

  • Used for media storage and delivery when you configure an R2 endpoint/bucket (and optional custom domain).
  • Same categories of data as above are sent to Cloudflare under the same conditions.
  • Service: https://www.cloudflare.com/developer-platform/r2/
  • Terms: https://www.cloudflare.com/website-terms/
  • Privacy: https://www.cloudflare.com/privacypolicy/

Other S3-compatible services (MinIO, self-hosted, CDN front-ends, etc.)

  • If you enter another Endpoint or custom domain, media and signed API requests are sent to that host under the conditions above.
  • You are responsible for reviewing that provider’s own terms of service and privacy policy before use.

No storage traffic is sent until you save credentials and enable the feature (or click Test connection). The plugin does not collect analytics or send site data to Lao Jiang / Lezaiyun servers.

Installation

  1. Download a complete package that includes the vendor/ directory and composer.json.
  2. Upload the leosp folder to /wp-content/plugins/.
  3. Activate LEOSP from the Plugins screen.
  4. Go to Settings → LEOSP Object Storage, fill in Bucket, Region, AccessKey, SecretKey, and related fields, then save.
  5. Click Test connection. After it succeeds, enable media offload.
  6. Upload a test image from the Media Library and confirm the public URL points to object storage or your custom domain.

Upgrade notes

  • From 1.0.0: replace the plugin completely. Dependencies now live under vendor/ instead of aws-sdk/.
  • Settings stored in the database are kept. After upgrading, run Test connection and upload a test image.

Frequently asked questions

Which object storage providers are supported?

Any S3-compatible API can be tried, including Amazon S3, Tencent COS, Aliyun OSS, Qiniu Kodo, Cloudflare R2, and MinIO. Configure Endpoint, Region, Bucket, and AccessKey/SecretKey correctly. See External services for privacy and terms links.

Why is the plugin package much smaller now?

From 1.1.0, Composer removeUnusedServices keeps only S3 and required related services. The package size drops from about 40MB+ to about 5MB, with the same upload/delete/connection-test behavior. The root composer.json describes how to rebuild those dependencies.

After enabling “do not keep local copies”, are local files removed?

Original files and synced thumbnails are removed from the local uploads directory after a successful remote upload. Files outside the media library flow (for example Elementor cache CSS) are not affected.

Will page builders such as Elementor or Divi break?

The plugin only handles media library attachments. Builder CSS/JS usually stays under local wp-content/uploads subfolders. If you enable “do not keep local copies”, regenerate builder CSS/cache so embedded image URLs stay valid.

Are existing images uploaded automatically?

No. Only media uploaded (or re-uploaded) after the plugin is enabled is offloaded. Use a migration script or third-party tool for historical files.

Connection test succeeds but images cannot be opened?

Check custom domain DNS and HTTPS, bucket or object public-read policy, and CDN origin settings.

Thumbnails never sync?

Check Recent error logs, confirm WP-Cron is running, and use Retry upload with the attachment ID.

How do developers rebuild dependencies?

In the plugin root run: composer install --no-dev --prefer-dist. Dependency metadata is in composer.json and composer.lock.

Changelog

Upgrades AWS SDK and removes disallowed vendor tooling files (.bat / .py). Please replace the full plugin package.

1.1.4

  • Compliance: upgrade aws/aws-sdk-php to 3.395.6 (latest stable at release)
  • Compliance: remove WordPress.org-disallowed vendor files (vendor/bin/*.bat, format-check.py)
  • Build: add vendor cleanup after Composer install (removes disallowed .bat / .py files)

1.1.3

  • Compliance: keep root composer.json (and lock) in the distributed plugin for open-source dependency review
  • Compliance: document third-party / external object storage services in readme (Amazon S3 and common S3-compatible providers), including data sent, when, and terms/privacy links

1.1.2

  • Compliance: remove fopen/fclose upload path; use AWS SDK SourceFile
  • Compliance: remove error_log debug calls
  • Compliance: English readme.txt, Tested up to 7.1, max 5 tags
  • Compliance: rename plugin without the restricted “WordPress” trademark term
  • Compliance: add languages/ Domain Path folder; stop calling load_plugin_textdomain()
  • Compliance: prefix settings template variables; harden nonce and input sanitization

1.1.1

  • Remove promo unlock modal; “do not keep local copies” can be enabled directly

1.1.0

  • Ship S3-only AWS SDK via Composer removeUnusedServices (about 43MB to about 5MB)
  • Move dependencies from aws-sdk/vendor/ to vendor/autoload.php
  • Add WordPress.org-style readme.txt and developer build notes

1.0.0

  • Initial release
  • Media offload to S3-compatible storage, URL rewriting, async thumbnail upload and retry
  • Optional “do not keep local copies”
  • Connection test, error logs, manual retry
  • Encrypted SecretKey storage

Full changelog on WordPress.org →

Screenshots

Object storage settings — toggles, Bucket, Endpoint, custom domain
Object storage settings — toggles, Bucket, Endpoint, custom domain

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best leosp alternatives

All cdn plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 W3 Total Cache W3 Total Cache Search Engine (SEO) & Performance Optimization (WPO) via caching. Integrated caching: CDN… by BoldGrid 900K+ ★★★★★★★★★★ 4.4 (5.4K) 7 days ago 82
2 SpeedyCache – Cache, Optimization, Performance SpeedyCache – Cache, Optimization, Performance SpeedyCache is a WordPress cache plugin that helps you improve performance of your… by Softaculous 600K+ ★★★★★★★★★★ 4.4 (30) 2 weeks ago 90
3 Breeze Cache Breeze Cache Breeze is a caching plugin developed by Cloudways. Breeze uses advance caching systems to… by Cloudways 300K+ ★★★★★★★★★★ 3.6 (126) 3 days ago 84
4 Super Page Cache – Cloudflare Cache, Page Speed & Core Web Vitals Super Page Cache Boost PageSpeed, SEO, and Core Web Vitals with full page caching, JS/CSS optimization… by Optimole 70K+ ★★★★★★★★★★ 4.8 (515) 3 days ago 91
5 bunny.net – WordPress CDN Plugin bunny.net – WordPress CDN Plugin Enable Bunny CDN to speed up your WordPress website and enjoy greatly improved loading… by bunny.net 10K+ ★★★★★★★★★★ 3.1 (21) 2 months ago 66
6 Pantheon Advanced Page Cache Pantheon Advanced Page Cache Automatically clear related pages from Pantheon's Edge when you update content. High TTL… by Pantheon Systems 10K+ ★★★★★★★★★★ 5 (1) 10 months ago 52
7 CDN Enabler CDN Enabler A content delivery network (CDN) integration plugin for WordPress that rewrites URLs, like… by KeyCDN 10K+ ★★★★★★★★★★ 4.1 (51) 7 months ago 47
8 Use Google Libraries Use Google Libraries Allows your site to use common javascript libraries from Google's AJAX Libraries CDN… by Jason Penney 10K+ ★★★★★★★★★★ 4.4 (47) 9 years ago 44
9 Advanced Media Offloader – Offload Media to Amazon S3, Cloudflare R2, DigitalOcean Spaces & More Advanced Media Offloader Offload WordPress media to Amazon S3, Cloudflare R2, DigitalOcean Spaces & more. Save… by Masoud Golchin 7K+ ★★★★★★★★★★ 4.7 (47) 4 weeks ago 85
10 Jetpack VideoPress Jetpack VideoPress The finest video hosting for WordPress. Drag and drop videos through the WordPress editor… by Automattic 7K+ ★★★★★★★★★★ 4 (16) 18 hours ago 84

FAQ

leosp: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 8, 2026

Is leosp free?

Yes. leosp is free to download and use from the official WordPress.org plugin directory.

Is leosp safe to use in 2026?

leosp is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 2 weeks ago, and scores 64/100 on our health check.

How many websites use leosp?

leosp is active on <10 WordPress websites and has been downloaded 105 times since it launched in September 2026. It was downloaded 106 times in the last 30 days.

Does leosp work with WordPress 7.1?

Yes. The developer has tested leosp up to WordPress 7.1.3, the latest release. It requires WordPress 6.0 or newer.

What PHP version does leosp need?

leosp requires PHP 8.1 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was leosp last updated?

The latest version, 1.1.4, was released on September 21, 2026 (2 weeks ago).

Who makes leosp?

leosp is developed and maintained by 老蒋和他的小伙伴.

What are the best alternatives to leosp?

The most popular alternatives to leosp are W3 Total Cache (900K+ installs), SpeedyCache (600K+ installs) and Breeze Cache (300K+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.