# exo storage copy
### Description

Copy objects within a bucket or across buckets.

This command copies objects server-side without downloading them. Object
metadata, headers, and ACLs are preserved. Existing destination objects are
overwritten.

Multi-object prefix copies are processed serially. A trailing slash on the
source selects prefix mode; -r controls recursion into subdirectories.

Examples:

    exo storage copy sos://my-bucket/file-a sos://my-bucket/folder/file-a

    exo storage copy sos://my-bucket/file-a sos://other-bucket/file-a

    exo storage copy -r sos://my-bucket/prefix/ sos://other-bucket/prefix/

    exo storage copy -n sos://my-bucket/file-a sos://other-bucket/file-a


```
exo storage copy sos://BUCKET/[OBJECT|PREFIX/] sos://BUCKET/[OBJECT|PREFIX/] [flags]
```

### Options

| Option | Description |
|---------|------------|
|`--dry-run, -n` | simulate the copy operation |
|`--force, -f` | skip confirmation prompt |
|`--help, -h` | help for copy |
|`--multipart-concurrency` | number of concurrent parts for multipart copies |
|`--recursive, -r` | copy objects recursively |
|`--verbose, -v` | output copied objects |


### Options inherited from parent commands

| Option | Description |
|---------|------------|
|`--config, -C` | Specify an alternate config file [env EXOSCALE_CONFIG] |
|`--output-format, -O` | Output format (table\|json\|text), see &#34;exo output --help&#34; for more information |
|`--output-template` | Template to use if output format is &#34;text&#34; |
|`--quiet, -Q` | Quiet mode (disable non-essential command output) |
|`--timeout` | Per-zone timeout for list operations; -1s disables timeout [env EXOSCALE_TIMEOUT] |
|`--use-account, -A` | Account to use in config file [env EXOSCALE_ACCOUNT] |


### Related Commands

* [storage]({{< ref "../storage">}})	 - Object Storage management


