Services Plugins FAQs

Zeroqode S3 Clouds Uploader plugin fails to work with Backblaze B2 S3-compatible storage

Please could you help me with the below?

— Issue Context —
Platform: Bubble.io

Plugin: “AWS File uploader – Any size” / S3 Clouds Uploader by Zeroqode

Plugin versions tested: 1.25.00 (current) and 1.24.0 (rollback)

Storage: Backblaze B2 S3‐compatible endpoint at s3.us-east-005.backblazeb2.com, bucket tractioned-files

Use case: multifile upload with UI validations (file type, size limits, custom prefixes, etc.)

What we’ve tried
Read the existing forum thread (Zeroqode forum #10964) confirming that others hit the same CORS/blocking issue.

Configured the UploaderSDK element exactly as documented:

Endpoint = s3.us-east-005.backblazeb2.com (static and dynamic),

Bucket region = blank,

Bucket = tractioned-files.

Rolled back to v1.24.0 and 1.25.0—still no client‐side S3 preflight headers ever return Access-Control-Allow-Origin.

Attempted CORS setup on B2 via:

Native B2 API (b2_update_bucket) with Python script,

AWS CLI s3api put-bucket-cors,

PowerShell raw REST calls,

S3 Browser / Cyberduck GUI.
All confirmed that the native B2 API accepts CORS rules, but the S3-compatible endpoint never implements preflight CORS.

Console errors
Access to XMLHttpRequest at
https://tr…ned-files.s3.us-east-005.backblazeb2.com/…jpg’
from origin ‘https://dev…com’ has been blocked by CORS policy:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
The plugin then surfaces a NetworkingError because the browser preflight fails.

Impact
Client‐side S3 PUT/POST via the plugin is impossible until Backblaze’s S3-compatible host actually supports CORS preflight responses.

Request
Fix endpoint logic so that a custom endpoint override is always respected.

Add support for S3-style OPTIONS/preflight on the S3-compatible endpoint (i.e. implement PUT bucket?cors and return the proper CORS headers).

Without these changes, the plugin cannot function against Backblaze B2 in any Bubble application.

Any guidance on a patch or workaround would be hugely appreciated—right now the plugin simply cannot function with Backblaze B2.