🧩 Overview
Extension Name: RYCloudinaryPackage Name : com.ry.Cloudinary
Version Code : 1
Category : Non-Visible Component
Description:
Cloudinary uploader for App Inventor, Kodular, Niotron, and similar platforms. Supports both Unsigned and Signed uploads using Storage Access Framework (SAF) URI input. Allows flexible configuration for cloud name, upload preset, timeouts, and folder paths.Demo Aia : Cloudinary.aia (29.5 KB)
Test Apk : https://drive.google.com/file/d/14kyD3Ml24Lsg5wEP00Fl4GmYD19u7pHj/view?usp=drivesdk
Extension : RYCloudinary.aix (17.3 KB)
🔧 Your working configuration:
| Property | Value | Note |
|---|---|---|
CloudName |
"Generation-album" |
|
UploadPreset |
"app_upload" |
|
UseSignedUpload |
false |
for unsigned mode |
SignatureEndpoint |
"" |
leave empty |
ConnectTimeout |
3000 |
ok |
ReadTimeout |
16000 |
ok |
All Blocks
⚙️ Key Features
✅ Upload images, videos, or any file to **Cloudinary**✅ Works with **SAF URI** (from FilePicker or WebViewer upload)
✅ Supports **Unsigned uploads** (no server signature needed)
✅ Supports **Signed uploads** (with signature endpoint)
✅ Allows custom **Cloud Name**, **Preset**, **Folder**, **Public ID**
✅ Shows **Progress**, **Success**, and **Error** events
✅ Configurable **Timeouts** (connection + read)
✅ Compatible with **AndroidX**
✅ Built-in **ProGuard** protection (code obfuscation)
🔐 Signed Upload Setup (Optional)
●Set UseSignedUpload → true ●Provide SignatureEndpoint → your backend API that returns signed parameters ●Don’t set UploadPreset (signature endpoint handles it automatically)Example Backend:
Your server should use Cloudinary SDK (Node, PHP, Python, etc.) to sign the upload request and return JSON to the extension.⚡ Tips for Better Performance
| Tip | Description |
|---|---|
| Uploads are much faster with compressed files | |
In your upload preset, enable quality_auto & fetch_format_auto |
|
| Uploads go directly to Cloudinary’s data center | |
| Extension v2 will support parallel uploads for faster speed |
🚫 Limitations
●SAF URI uploads are slower than direct file paths (Android restriction) ●Very large files (>15 MB) may take longer or timeout ●Cloudinary free tier has bandwidth limits (check dashboard) ●Requires internet connection (HTTPS POST)🧰 Example Cloudinary Setup
1️⃣ Go to [Cloudinary Dashboard → Upload Settings → Upload Presets]2️⃣ Click “Add Upload Preset”
3️⃣ Set:●Signing Mode: Unsigned
●Folder: e.g., AppUploads
●Allow formats: image/*
●Save preset name: app_upload
4️⃣ Use that preset in your app: set RYCloudinary1.UploadPreset to "app_upload"
📦 Changelog
●v1.0 (Initial Release)●Added UploadUri method
●Added OnProgress, OnUploadSuccess, OnUploadError events
●Added support for signed & unsigned uploads
●AndroidX + Proguard enabled

