Cloudinary configuration management for setting up credentials, CDN preferences, and global options. Configuration can be set globally or per-request.
Set configuration options globally for all subsequent operations.
/**
* Configure Cloudinary with credentials and options
* @param options - Configuration options object
* @returns Current configuration object
*/
function config(options?: ConfigOptions): ConfigOptions;
interface ConfigOptions {
/** Your Cloudinary cloud name */
cloud_name?: string;
/** Your Cloudinary API key */
api_key?: string;
/** Your Cloudinary API secret */
api_secret?: string;
/** API proxy configuration */
api_proxy?: string;
/** Use private CDN (custom domain) */
private_cdn?: boolean;
/** Custom secure distribution domain */
secure_distribution?: string;
/** Force version parameter in URLs */
force_version?: boolean;
/** Automatically detect SSL/HTTPS */
ssl_detected?: boolean;
/** Force secure (HTTPS) URLs */
secure?: boolean;
/** Use CDN subdomain for better performance */
cdn_subdomain?: boolean;
/** Use secure CDN subdomain */
secure_cdn_subdomain?: boolean;
/** Custom CNAME for private CDN */
cname?: string;
/** Shorten URLs by removing cloud_name */
shorten?: boolean;
/** Sign URLs for security */
sign_url?: boolean;
/** Use long URL signature */
long_url_signature?: boolean;
/** Use root path instead of version path */
use_root_path?: boolean;
/** Authentication token configuration */
auth_token?: AuthTokenOptions;
/** Account ID for provisioning API */
account_id?: string;
/** Provisioning API key */
provisioning_api_key?: string;
/** Provisioning API secret */
provisioning_api_secret?: string;
/** OAuth token */
oauth_token?: string;
[key: string]: any;
}
interface AuthTokenOptions {
/** Authentication token key */
key: string;
/** Access control list */
acl?: string;
/** IP address restriction */
ip?: string;
/** Token start time (Unix timestamp) */
start_time?: number;
/** Token duration in seconds */
duration?: number;
/** Token expiration time (Unix timestamp) */
expiration?: number;
}Usage Examples:
const cloudinary = require('cloudinary');
// Basic configuration
cloudinary.config({
cloud_name: 'demo',
api_key: '123456789012345',
api_secret: 'abcdefghijklmnopqrstuvwxyz123456'
});
// Advanced configuration with CDN options
cloudinary.config({
cloud_name: 'demo',
api_key: '123456789012345',
api_secret: 'abcdefghijklmnopqrstuvwxyz123456',
secure: true,
cdn_subdomain: true,
private_cdn: true,
secure_distribution: 'cdn.example.com'
});
// Get current configuration
const currentConfig = cloudinary.config();
console.log(currentConfig.cloud_name);Cloudinary automatically reads configuration from environment variables.
// Environment variables (no explicit function call needed)
// CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
// CLOUDINARY_ACCOUNT_URL=account://account_id:provisioning_api_key:provisioning_api_secret@account_idUsage Examples:
# Set environment variable
export CLOUDINARY_URL=cloudinary://123456789012345:abcdefghijklmnopqrstuvwxyz123456@demo
# For provisioning API
export CLOUDINARY_ACCOUNT_URL=account://account123:prov_key:prov_secret@account123// Configuration is automatically loaded from environment
const cloudinary = require('cloudinary');
// No explicit config() call needed - uses environment variables
const url = cloudinary.url('sample.jpg');Override global configuration for specific operations.
/**
* Most API functions accept configuration options as parameters
* These override global configuration for that specific request
*/Usage Examples:
const cloudinary = require('cloudinary');
// Override cloud_name for this URL generation
const url = cloudinary.url('sample.jpg', {
cloud_name: 'different_cloud',
secure: true
});
// Override configuration for upload
const result = await cloudinary.v2.uploader.upload('image.jpg', {
cloud_name: 'different_cloud',
api_key: 'different_key',
api_secret: 'different_secret',
public_id: 'my_image'
});Get and set individual configuration values.
/**
* Get specific configuration value
* @param key - Configuration key to retrieve
* @returns Configuration value
*/
function config<K extends keyof ConfigOptions>(key: K): ConfigOptions[K];
/**
* Set specific configuration value
* @param key - Configuration key to set
* @param value - Value to set
* @returns Updated configuration object
*/
function config<K extends keyof ConfigOptions>(
key: K,
value: ConfigOptions[K]
): ConfigOptions;Usage Examples:
const cloudinary = require('cloudinary');
// Get specific config value
const cloudName = cloudinary.config('cloud_name');
// Set specific config value
cloudinary.config('secure', true);
cloudinary.config('quality', 'auto');
// Chain multiple configurations
cloudinary.config({
secure: true,
quality: 'auto',
fetch_format: 'auto'
});const cloudinary = require('cloudinary');
// Validate configuration by testing API connectivity
try {
const result = await cloudinary.v2.api.ping();
console.log('Configuration valid:', result);
} catch (error) {
console.error('Configuration error:', error.message);
}interface ConfigOptions {
cloud_name?: string;
api_key?: string;
api_secret?: string;
api_proxy?: string;
private_cdn?: boolean;
secure_distribution?: string;
force_version?: boolean;
ssl_detected?: boolean;
secure?: boolean;
cdn_subdomain?: boolean;
secure_cdn_subdomain?: boolean;
cname?: string;
shorten?: boolean;
sign_url?: boolean;
long_url_signature?: boolean;
use_root_path?: boolean;
auth_token?: AuthTokenOptions;
account_id?: string;
provisioning_api_key?: string;
provisioning_api_secret?: string;
oauth_token?: string;
[key: string]: any;
}
interface AuthTokenOptions {
key: string;
acl?: string;
ip?: string;
start_time?: number;
duration?: number;
expiration?: number;
}