Compressor APIStorageCloudflare R2
Storage - Cloudflare R2
Integrate Cloudflare R2 with Compressor using our Secure Storage Connectors system. This approach keeps your Cloudflare credentials secure within your Compressor Account, requiring only a connector reference ID in your API calls.
Authentication
Authentication is handled exclusively through Secure Storage Connectors. Create a connector in your Compressor Account dashboard by providing your Cloudflare R2 API credentials, then reference it using its unique identifier in your API requests.
Configuration Options
| Parameter | Type | Required | Details |
bucket | String | Yes | Target R2 bucket name. |
path | String | No | Object destination path (omit leading slash). Defaults to root. |
acl | String | No | Access control: public-read or private. Default: public-read. |
metadata | Hash | No | Custom metadata key-value pairs. |
headers | Hash | No | Custom HTTP Headers: Cache-Control, Content-Type, Content-Encoding, Content-Disposition. |
Implementation Example
Below is a complete API request demonstrating Google Cloud Storage integration:
curl https://api.compressor.app/1.0/fetch \
-X POST \
-u your-api-key: \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.website.com/image.jpg",
"image": {
"resize": {
"width": 640,
"height": 480,
"mode": "fit"
}
},
"store": {
"id": "your-connector-id",
"bucket": "my-bucket",
"path": "assets/image.jpg",
"headers": {
"Cache-Control": "max-age=2592000000"
}
}
}'API Response
Successful requests return the Cloudflare R2 object URL in the response.
{
"id": "38a8bb5e-7b50-4a22-a0a6-b9602fccb225",
"url": "https://bucket-name.account.r2.cloudflarestorage.com/image.jpg",
"input": {
"name": "image.jpg",
"type": "image",
...
},
"output": {
"name": "image.jpg",
"type": "image",
...
}
}