Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ venv
.idea

.cld-sync
.env
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,45 @@ cld [cli options] migrate [command options] upload_mapping file

For details, see the [Cloudinary CLI documentation](https://cloudinary.com/documentation/cloudinary_cli#migrate).

### `clone`

Clones assets from one product environment to another with/without tags, context, and structured metadata.

**Metadata Features:**
- **Schema Replication**: Automatically replicate metadata field definitions from source to target cloud
- **Metadata Copying**: Copy structured metadata values from source assets to target assets
- **Validation**: Validate metadata compatibility before cloning to prevent errors

```
cld [cli options] clone [command options] target_environment
```

For details, see the [Cloudinary CLI documentation](https://cloudinary.com/documentation/cloudinary_cli#clone).

**Examples:**
```bash
# Clone with full metadata support (default)
cld clone cloudinary://api_key:api_secret@target_cloud

# Clone without metadata copying
cld clone target_cloud --no-copy_metadata --no-replicate_schema

# Clone with only schema replication
cld clone target_cloud --replicate_schema --no-copy_metadata

# Clone assets with specific metadata values
cld clone target_cloud -se 'resource_type:image AND metadata.sku:*'

# Force clone even with validation errors
cld clone target_cloud --force
```

**Metadata Options:**
- `--copy_metadata`: Copy metadata fields from source assets to target assets (default: enabled)
- `--replicate_schema`: Replicate metadata schema from source to target cloud (default: enabled)
- `--no-copy_metadata`: Disable metadata copying
- `--no-replicate_schema`: Disable schema replication

## Additional configurations

A configuration is a reference to a specified Cloudinary account or cloud name via its environment variable. You set the default configuration during setup and installation. Using different configurations allows you to access different Cloudinary cloud names, such as sub-accounts of your main Cloudinary account, or any additional Cloudinary accounts you may have.
Expand Down
5 changes: 5 additions & 0 deletions cloudinary_cli/cli_group.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
#!/usr/bin/env python3
import platform
import shutil
import os

import click
import click_log
import cloudinary
from dotenv import load_dotenv

from cloudinary_cli.defaults import logger
from cloudinary_cli.utils.config_utils import load_config, refresh_cloudinary_config, \
is_valid_cloudinary_config
from cloudinary_cli.version import __version__ as cli_version

# Load environment variables from .env file
load_dotenv()

CONTEXT_SETTINGS = dict(max_content_width=shutil.get_terminal_size()[0], terminal_width=shutil.get_terminal_size()[0])


Expand Down
Loading
Loading