The plugin transforms the Webasyst Files application into a fully functional S3-compatible server: third-party applications and clients can connect to it via the S3 protocol and work with files as if they were using a cloud storage service (e.g., Amazon S3, Yandex Cloud Object Storage, etc.).
This allows using Webasyst as a centralized file storage solution for other services, scripts, and tools that support S3.
What It Provides
- Single File Storage Point. All files are stored in Webasyst Files but are accessible from different systems via the standard S3 interface.
- Third-Party Service Integration. You can connect CI/CD, backup scripts, media processors, and other tools that work with S3.
- Standardized Access. No need to write custom integrations for each service; simply configure the S3 client to work with your Webasyst instance.
- Access Control and Permissions. User management and permissions remain within the Webasyst ecosystem; the plugin translates these permissions into the S3 access model.
- Encryption and Security. Data transfer is conducted via a secure connection (TLS), and standard S3 authentication (Signature v4) is supported.
After enabling the plugin, the Webasyst interface displays the S3 endpoint and connection instructions. File operations within the Files application remain unchanged: users continue to upload, view, and delete files as usual.
How to Set Up
- Create a Files application installation in the root of one of the websites in your setup:
- It's best to create a special subdomain in your DNS zone (e.g., s3.your-site.com) and direct it to your server.
- Create a new site in the Site application for the created subdomain and install the Files application in its root.
- Enable the S3 server in the plugin settings and select the Files installation on the created subdomain as the endpoint.
- Configure users/access keys. Create a Secret Access Key for each user. The keys will be tied to a specific Webasyst user and inherit their permissions.
- Verify access using any S3 client (see below).
- Increase the maximum upload size limit for site data in PHP and/or web server settings if necessary.
Modern Clients for Working with S3
These clients can be used to connect to your Webasyst with the S3 Server plugin enabled:
- Cyberduck (macOS, Windows) — a convenient graphical client that allows connecting to S3 storage and working with files like a regular folder.
- S3 Browser (Windows) — a visual interface for managing buckets and files, well-suited for manual work and verification.
- rclone — a command-line tool for synchronization, copying, and mounting; excellent for automation and scripting.
- AWS CLI — the official Amazon CLI; can be configured to work with any S3-compatible endpoint, including your Webasyst.
- MinIO Client (mc) — a universal CLI for S3; supports scripts, synchronization, and bulk operations.
Example of Connection Setup (on Different Clients)
Only path-style S3 access is supported. Virtual hosts style S3 addressing does not supported yet.
AWS CLI:
aws configure
You will be prompted sequentially for connection details. Fill them in with the connection data provided by the plugin:
Access Key ID: <your Webasyst backend login>
Secret Access Key: <your secret key from the plugin>
Default region name: <region specified in plugin settings>
Default output format: json
Then set the endpoint — the S3 server URL selected in the plugin settings:
aws configure set endpoint_url https://s3-subdomain.your-site.ru/
Now the commands aws s3 ls, aws s3 cp, aws s3 sync will work with your storage in Webasyst.
Cyberduck:
Add a new connection of type «S3 (Deprecated path style requests)» and specify:
- Server:
s3-subdomain.your-site.ru
- Access Key ID: your Webasyst backend login
- Secret Access Key: your secret key from the plugin
S3 Browser:
Add a new connection of type «S3 Compatible Storage» and specify:
- API endpoint:
s3-subdomain.your-site.ru
- Access Key ID: your Webasyst backend login
- Secret Access Key: your secret key from the plugin
rclone:
Add a block to the config:
[webasyst]
type = s3
provider = Other
env_auth = false
access_key_id = <your Webasyst backend login>
secret_access_key = <your secret key from the plugin>
endpoint = https://s3-subdomain.your-site.ru/