Description
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
- Go to WooCommerce > Settings > S3-Compatible
- Enter your S3 credentials:
- Access Key
- Secret Key
- Bucket Name
- Endpoint URL (e.g., https://s3.example.com)
- Set the Link Expiration time (1-60 minutes)
- Save the settings
Usage
Browsing and Selecting Files
- When creating or editing a downloadable product in WooCommerce
- Click “Browse S3” button next to the file URL field
- Browse your S3 bucket using the folder navigation
- Use the breadcrumb navigation bar to quickly jump to parent folders
- Use the search box in the header to filter files by name
- Click “Select File” to use an existing file for your download
Uploading New Files
- In the S3 browser, click the “Upload File” button in the header row
- The upload form will appear above the file list
- Choose your file and click “Upload”
- After a successful upload, the file URL will be automatically set with the S3 prefix
- 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
- Amazon S3:
- 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:
- Storage for WooCommerce via Dropbox – Use Dropbox for your digital product storage
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.
Installation
- Upload the plugin files to the
/wp-content/plugins/storage-for-woo-via-s3-compatibledirectory, or install the plugin through the WordPress plugins screen directly. - Make sure you have WooCommerce plugin installed and activated.
- Run
composer installin the plugin directory if installing from source (not needed for release versions). - Activate the plugin through the ‘Plugins’ screen in WordPress.
- Navigate to WooCommerce > Settings > S3-Compatible to configure the plugin.
FAQ
-
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, XMLDangerous 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_prefixfilter. 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_typesfilter.
Reviews
Contributors & Developers
“Storage for Woo via S3-Compatible” is open source software. The following people have contributed to this plugin.
Contributors“Storage for Woo via S3-Compatible” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “Storage for Woo via S3-Compatible” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
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-dispositionheader 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




