Loading…
Loading…
Trust Score comparison · April 2026
| Factor | Cloudflare R2 | Cloudinary |
|---|---|---|
| License | Proprietary | Proprietary |
| Language | Any | TypeScript / Python |
| Hosted | Self-hosted | Yes |
| Free tier | — | — |
| Open Source | — | — |
| TypeScript | — | ✓ |
import { S3Client, PutObjectCommand, GetObjectCommand } from '@aws-sdk/client-s3';
const R2 = new S3Client({
region: 'auto',
endpoint: `https://${process.env.CF_ACCOUNT_ID}.r2.cloudflarestorage.com`,
credentials: {
accessKeyId: process.env.R2_ACCESS_KEY_ID!,
secretAccessKey: process.env.R2_SECRET_ACCESS_KEY!,
},
});
// Upload a file
await R2.send(new PutObjectCommand({
Bucket: 'my-bucket',
Key: 'uploads/photo.jpg',
Body: fileBuffer,
ContentType: 'image/jpeg',
}));
console.log('Uploaded to R2');import { v2 as cloudinary } from 'cloudinary';
cloudinary.config({
cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET,
});
// Upload and auto-optimize
const result = await cloudinary.uploader.upload('path/to/image.jpg', {
folder: 'my-app',
transformation: [{ width: 800, crop: 'scale' }, { quality: 'auto', fetch_format: 'auto' }],
});
console.log(result.secure_url);Cloudinary leads on Trust Score with stronger signal data across downloads and community health. That said, the other tool is worth considering if your use case matches its specific strengths above.