
外掛標籤
開發者團隊
原文外掛簡介
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.
