Cloudinary Node SDK for media management, transformation, upload, and optimization
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
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;
}Install with Tessl CLI
npx tessl i tessl/npm-cloudinary