Storage for Woo via S3-Compatible

外掛說明

Storage for WooCommerce via S3-Compatible is a powerful extension for WooCommerce that allows you to store and deliver your digital products using Amazon S3 or any S3-compatible storage service. This plugin provides seamless integration with S3 APIs, featuring signed URLs with configurable expiration times.

Key Features

  • S3-Compatible Integration: Store your digital products in Amazon S3, Wasabi, MinIO, DigitalOcean Spaces, Backblaze B2, and more
  • Signed Download Links: Generates secure signed URLs with configurable expiration (1-60 minutes)
  • Easy File Management: Upload files directly to S3 through WordPress admin
  • Media Library Integration: Browse and select files from your S3 bucket within WordPress
  • Folder Support: Navigate and organize files in folders (prefixes)
  • Security First: Built with WordPress security best practices
  • Developer Friendly: Clean, well-documented code with hooks and filters

Configuration

  1. Go to WooCommerce > Settings > S3-Compatible
  2. Enter your S3 credentials:
    • Access Key
    • Secret Key
    • Endpoint URL (e.g., https://s3.example.com)
    • Custom Region (Optional, check to specify a custom region like eu-west-3 for regional AWS S3 buckets or specific S3-compatible providers)
    • Bucket Name
  3. Set the Link Expiration time (1-60 minutes)
  4. Save the settings

Usage

Browsing and Selecting Files

  1. When creating or editing a downloadable product in WooCommerce
  2. Click “Browse S3” button next to the file URL field
  3. Browse your S3 bucket using the folder navigation
  4. Use the breadcrumb navigation bar to quickly jump to parent folders
  5. Use the search box in the header to filter files by name
  6. Click “Select File” to use an existing file for your download

Uploading New Files

  1. In the S3 browser, click the “Upload File” button in the header row
  2. The upload form will appear above the file list
  3. Choose your file and click “Upload”
  4. After a successful upload, the file URL will be automatically set with the S3 prefix
  5. Click the button again to hide the upload form

External services

This plugin connects to S3-compatible storage APIs to manage files and create download links.

It sends the necessary authentication credentials and file requests to your configured S3 endpoint. This happens when you browse your S3 bucket in the dashboard, upload files, or when a customer downloads a file.

  • Service: S3-Compatible Storage API
  • Used for: File browsing, uploading, and generating signed download links.
  • Data sent: API credentials, file metadata, file content (during upload).
  • URLs: Depends on your configured endpoint:
    • Amazon S3: https://s3.amazonaws.com
    • Wasabi: https://s3.wasabisys.com
    • MinIO: Your self-hosted endpoint
  • Legal: Refer to your storage provider’s Terms of Service and Privacy Policy

Support

For support and bug reports, please use the WordPress.org plugin support forum.

If you find this plugin helpful, please consider leaving a review on WordPress.org.

Other Storage Providers

Looking for a different storage provider? Check out our other plugins:

Privacy Policy

This plugin requires S3 API credentials to access your storage for file management. It does not collect or store any personal data beyond the API credentials needed to maintain the connection. All file storage and delivery is handled through your configured S3 endpoint’s secure infrastructure.

螢幕擷圖

安裝方式

  1. Upload the plugin files to the /wp-content/plugins/storage-for-woo-via-s3-compatible directory, or install the plugin through the WordPress plugins screen directly.
  2. Make sure you have WooCommerce plugin installed and activated.
  3. Run composer install in the plugin directory if installing from source (not needed for release versions).
  4. Activate the plugin through the ‘Plugins’ screen in WordPress.
  5. Navigate to WooCommerce > Settings > S3-Compatible to configure the plugin.

常見問題集

How secure are the download links?

The plugin generates signed URLs that are only valid for the configured duration (1-60 minutes). These links are generated on-demand when a customer initiates a download, ensuring that each download session gets a fresh, time-limited URL.

Can I customize the link expiration time?

Yes! Unlike some other cloud storage services, S3 allows you to configure the link expiration time. Go to WooCommerce > Settings > S3 Storage and set your preferred duration (1-60 minutes).

What file types are supported for upload?

The plugin supports safe file types including:
* Archives: ZIP, RAR, 7Z, TAR, GZ
* Documents: PDF, DOC, DOCX, TXT, RTF, XLS, XLSX, CSV, PPT, PPTX
* Images: JPG, JPEG, PNG, GIF, WEBP
* Audio: MP3, WAV, OGG, FLAC, M4A
* Video: MP4, AVI, MOV, WMV, FLV, WEBM
* E-books: EPUB, MOBI, AZW, AZW3
* Web files: CSS, JS, JSON, XML

Dangerous file types (executables, scripts) are automatically blocked for security.

Which S3 providers are supported?

Any S3-compatible storage service, including:
* Amazon S3
* DigitalOcean Spaces
* Linode Object Storage
* Wasabi
* Backblaze B2 (with S3-compatible API)
* Cloudflare R2
* MinIO
* Storj
* ArvanCloud
* Hetzner Object Storage
* And many others

Can I customize the URL prefix for S3 files?

Yes, developers can customize the URL prefix using the wcs3_url_prefix filter. Add this code to your theme’s functions.php:

function customize_s3_url_prefix($prefix) {
    return 'wc-myprefix://'; // Change to your preferred prefix
}
add_filter('wcs3_url_prefix', 'customize_s3_url_prefix');

Can I customize the allowed file types (MIME types)?

Yes, developers can customize the allowed MIME types using the wcs3_allowed_mime_types filter.

使用者評論

2026 年 8 月 8 日
A very useful and well-designed plugin for WooCommerce digital products. We used it to move a large library of downloadable audio files from our web hosting to Cloudflare R2, and it made the process much easier. The plugin works nicely with S3-compatible storage, supports private files and signed download URLs, and integrates directly with WooCommerce downloadable products. What I especially appreciate is that it solves a real problem for stores with a large amount of digital content: the files can be delivered directly from cloud storage instead of consuming local hosting space and bandwidth. The developer has also clearly put a lot of work into compatibility and practical WooCommerce integration. Thank you very much for creating and maintaining this plugin — it is genuinely useful and has already saved us a lot of storage and infrastructure costs. Highly recommended for anyone selling downloadable products with WooCommerce.
2026 年 7 月 25 日
I’m very satisfied with the plugin and the support I received. I encountered an important issue that needed to be resolved, and the Storage for Woo support team worked hard to identify and fix the problem. They listened to my feedback, responded to my questions throughout the process, and continued improving the plugin until everything worked correctly. Thank you for your excellent support.Patric / Internetfoto (Sweden)
2026 年 2 月 2 日
I really love this plugin. It’s exactly what I was looking for to sell digital download products with WooCommerce.It finally makes it easy to integrate S3 files into download products without any coding. I’ve used similar features in Easy Digital Downloads, and I was really happy to see the same solution available for WooCommerce.
閱讀全部 3 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈Storage for Woo via S3-Compatible〉的開發相關工作。

參與者

〈Storage for Woo via S3-Compatible〉外掛目前已有 1 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈Storage for Woo via S3-Compatible〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

1.2.3

  • Fixed: WooCommerce download counter tracking, download limits, and access expiration.

1.2.2

  • Fixed: Part of the product edit screen could go blank or appear cut off on products with many attributes. The file-row watcher added in 1.2.1 was observing the entire edit screen and rescanning it on every DOM change, which blocked the browser from finishing rendering.
  • Fixed: The plugin no longer applies a global scrollbar rule to the whole WordPress admin page. It is now limited to the S3 browser modal.
  • Improved: The “Browse S3” button is now injected using a debounced, narrowly scoped watcher, which greatly reduces admin CPU usage on large products.

1.2.1

  • Fixed: Selecting a file from the S3 browser sometimes did not insert it into the WooCommerce downloadable file fields.
  • Improved: More reliable detection of the target file row and its inputs across WooCommerce versions.
  • Added: Clear error message instead of the modal closing silently on failure.

1.2.0

  • Matched the loading skeleton search placeholder to the live search field.
  • Rebuilt the file browser modal with the new shadcn-style interface.
  • Improved upload feedback, keyboard focus states, and scrollbar stability.

1.1.2

  • Fixed: Custom URL protocol corruption on first product save caused by early WordPress protocol caching (covers default wc-s3cs:// and custom prefixes).
  • Updated: Internal vendor dependencies.

1.1.1

  • Added: Custom Region configuration setting to manually define S3 regions for AWS S3 and custom S3 endpoints, ensuring accurate Signature V4 signing and bucket listings.
  • Tested: Fully compatible with WordPress 7.0.

1.1.0

  • Major Refactor: Replaced legacy iframe browser with modern AJAX implementation for improved performance.
  • Fixed: Critical issue where S3 uploads were considered successful despite 4xx/5xx HTTP errors.
  • Fixed: Signature mismatch in download presigned URLs for files with special characters or spaces.
  • Added: Strict pre-upload file validation (hash, size, and stream) for enhanced reliability.
  • Security: Sanitized response-content-disposition header in download links to prevent header injection.

1.0.5

  • Improved: UI styles and enhanced layout consistency for better harmony.
  • Improved: Comprehensive code improvements and stability optimizations.
  • Added: Skeleton loader with shimmer animation for better UX while loading S3 browser modal.

1.0.4

  • Improved WordPress coding standards compliance

1.0.3

  • Added proper PHPCS annotations for nonce verification and input sanitization

1.0.2

  • Added force download for files – browser now downloads files instead of opening them inline

1.0.1

  • Improved file browser to open directly in the folder of the existing file
  • Fixed issue with remembering last folder location
  • Use wp_enqueue commands: Replaced inline and in includes/class-media-library.php (admin media library)

1.0.0

  • Initial release
  • S3-compatible storage integration
  • Signed download link generation with configurable expiration
  • Media library integration
  • File upload functionality
  • Admin settings interface
  • Security enhancements and validation
  • Internationalization support