feat: add S3-compatible storage provider (MinIO, Ceph, R2, etc.)
Adds a new 'S3-Compatible Storage' provider that works with any
S3-API-compatible object storage service, including MinIO, Ceph,
Cloudflare R2, Backblaze B2, and others.
Changes:
- New provider class: classes/providers/storage/s3-compatible-provider.php
- Provider key: s3compatible
- Reads user-configured endpoint URL from settings
- Uses path-style URL access (required by most S3-compatible services)
- Supports credentials via AS3CF_S3COMPAT_ACCESS_KEY_ID /
AS3CF_S3COMPAT_SECRET_ACCESS_KEY wp-config.php constants
- Disables AWS-specific features (Block Public Access, Object Ownership)
- New provider SVG icons (s3compatible.svg, -link.svg, -round.svg)
- Registered provider in main plugin class with endpoint setting support
- Updated StorageProviderSubPage to show endpoint URL input for S3-compatible
- Built pro settings bundle with rollup (Svelte 4.2.19)
- Added package.json and updated rollup.config.mjs for pro-only builds
This commit is contained in:
32
classes/settings/exceptions/domain-check-exception.php
Normal file
32
classes/settings/exceptions/domain-check-exception.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
use Exception;
|
||||
use ReflectionClass;
|
||||
|
||||
class Domain_Check_Exception extends Exception {
|
||||
|
||||
/**
|
||||
* @var string Relative path for dbrains link
|
||||
*/
|
||||
protected $more_info = '/wp-offload-media/doc/assets-pull-domain-check-errors/';
|
||||
|
||||
/**
|
||||
* Get the exception name in key form.
|
||||
*/
|
||||
public function get_key(): string {
|
||||
$class = new ReflectionClass( $this );
|
||||
|
||||
return strtolower( $class->getShortName() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the relative URL to a help document for this exception.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function more_info(): string {
|
||||
return $this->more_info;
|
||||
}
|
||||
}
|
||||
6
classes/settings/exceptions/http-response-exception.php
Normal file
6
classes/settings/exceptions/http-response-exception.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class HTTP_Response_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Invalid_Response_Code_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Invalid_Response_Type_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Malformed_Query_String_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Malformed_Response_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class S3_Bucket_Origin_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Signature_Verification_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
6
classes/settings/exceptions/ssl-connection-exception.php
Normal file
6
classes/settings/exceptions/ssl-connection-exception.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Ssl_Connection_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace DeliciousBrains\WP_Offload_Media\Settings\Exceptions;
|
||||
|
||||
class Unresolveable_Hostname_Exception extends Domain_Check_Exception {
|
||||
}
|
||||
Reference in New Issue
Block a user