Sync
While it is possible to manually upload files and folders from the bunny.net dashboard, a dedicated command allows you to automatically sync files to and from storage zones and your local machine quickly, consistently, and with little to no downtime.
The difference between the sync
and move
commands is that:
- The
sync
command will sync files to the destination, and delete files in the destination that do not exist in the source. - The
move
command will move files to the destination, and leave existing files in the destination that do not exist in the source.
Files are compared by uppercase SHA256
checksum file hashes to skip file syncing when they are the same file. HTML files are the last to be synced, and deleted files are only removed after all files are synced.
Usage
bunny-transfer sync [options] <from> <to> [to...]
Examples
bunny-transfer sync ./dist my-storage-zone
bunny-transfer sync my-storage-zone /Users/user/Desktop/projects/project/dist
bunny-transfer sync ./dist 472435 my-other-storage-zone
- Name
from, to
- Type
- string | number
- Description
Location
For the
sync
command, the locations can be:- A storage zone name like
my-storage-zone
- A storage zone id like
643475
- An absolute path on your machine like
/Users/user/Desktop/projects/project/dist
- A relative path on your machine like
./dist
Locations are positional arguments, and you can specify as many locations as you want. At least two locations must be specified. The first location positional argument is the source
from
location, while every following location is a destinationto
location.All contents will be synced, which means files deleted or missing from the source
from
location will be permanently removed from the destinationto
locations.- A storage zone name like
- Name
--access-key, -k
- Type
- uuid
- Description
Access Key
To find your account API Access Key, please visit either:
All account API Access Keys are in
uuid
format, such asc24347cf-1bc0-4900-8d60-86b1c7701f53
.Please use your account API Access Key, not the
Password
orReadOnlyPassword
of your storage zone.Please read the authentication guide to learn more about Access Key types.
- Name
--profile, -p
- Type
- string
- Description
Profile
Your profile is any easy-to-remember name that you gave to reference your API Access Key. By saving an API Access Key under a profile, you can use that profile to easily select, change, and remove your API Access Key.
If you only have one profile, that one profile is your default profile and will be automatically selected for all of your commands. When possible, commands will automatically select profiles based on the storage zones, pull zones, dns zones, and linked hostnames in an account.
If you have multiple profiles and a profile cannot be inferred, then specifying the profile will tell the command which profile it should use. A specified profile name will override all inference, unless the environment variable
BUNNY_ACCESS_KEY
or the command line flag--access-key
is provided.
- Name
--shared-credentials-file, -c
- Type
- file-path
- Description
Shared Credentials File
All profiles are saved by default in
~/.bunny/credentials
.The shared credentials file follows the TOML v1.0.0 format specification.
Each profile consists of a:
profile
accessKey
email
id
name
(optional)
Shared Credentials File sample
[personal] accessKey = "c24347cf-1bc0-4900-8d60-86b1c7701f53" email = "johndoe@example.com" id = "31141ed7-9a4c-48b3-9910-676f9c999d70" [business] accessKey = "85e2e568-dc73-47c2-8530-ce8f8f42fe6c" email = "johndoe@company.com" id = "5552c462-bde1-4a41-88ed-d8c1bc1c51bc" name = "John Doe"