Attach cloud storage
In CVAT, you can use Amazon S3, Azure Blob Storage, Backblaze B2, and Google Cloud Storage storages to import and export image datasets for your tasks.
Check out:
Amazon S3
Create a bucket
To create bucket, do the following:
-
Create an AWS account.
-
Go to the Amazon S3 console, and select Create bucket.

-
Specify the name and region of the bucket. You can also copy the settings of another bucket by selecting Choose bucket.
-
Enable Block all public access. For access, you will use access key ID and secret access key.
-
Select Create bucket.
A new bucket will appear on the list of buckets.
Upload data
Note
The manifest file is optional.You need to upload data for annotation and the manifest.jsonl file.
-
Prepare data. For more information, refer on how to prepare the dataset.
-
Open the bucket and select Upload.

-
Drag the manifest file and image folder on the page and select Upload:

Access permissions
Authenticated access
To add access permissions, do the following:
-
Go to IAM and select Add users.
-
Set User name and enable Access key - programmatic access.

-
Select Next: Permissions.
-
Select Create group, enter the group name.
-
Use search to find and select:
- For read-only access: AmazonS3ReadOnlyAccess.
- For full access: AmazonS3FullAccess.

-
(Optional) Add tags for the user and go to the next page.
-
Save Access key ID and Secret access key.

For more information, consult Creating an IAM user in your AWS account
Anonymous access
On how to grant public access to the bucket, consult Configuring block public access settings for your S3 buckets
Attach Amazon S3 storage
To attach storage, do the following:
- Log into CVAT and in the separate tab open your bucket page.
- In the CVAT, on the top menu select Cloud storages > on the opened page select +.
Fill in the following fields:
| CVAT | Amazon S3 |
|---|---|
| Display name | Preferred display name for your storage. |
| Description | (Optional) Add description of storage. |
| Provider | From drop-down list select Amazon S3. |
| Bucket name | Name of the Bucket. |
| Authentication type | Depends on the bucket setup: |
| Region | (Optional) Choose a region from the list or add a new one. For more information, consult Available locations. |
| Prefix | (Optional) Prefix is used to filter bucket content. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| Manifests | (Optional) Select + Add manifest and enter the name of the manifest file with an extension. For example: manifest.jsonl. |
After filling in all the fields, select Submit.
Amazon S3 manifest file
Note
The manifest file is optional.To prepare the manifest file, do the following:
-
Go to AWS CLI and run script for prepare manifest file.
-
Perform the installation, following the aws-shell manual,
You can configure credentials by runningaws configure.
You will need to enterAccess Key IDandSecret Access Keyas well as the region.aws configure Access Key ID: <your Access Key ID> Secret Access Key: <your Secret Access Key> -
Copy the content of the bucket to a folder on your computer:
aws s3 cp <s3://bucket-name> <yourfolder> --recursive -
After copying the files, you can create a manifest file as described in prepare manifest file section:
python <cvat repository>/utils/dataset_manifest/create.py --output-dir <yourfolder> <yourfolder> -
When the manifest file is ready, upload it to the S3 bucket:
-
For read and write permissions when you created the user, run:
aws s3 cp <yourfolder>/manifest.jsonl <s3://bucket-name> -
For read-only permissions, use the download through the browser, select upload, drag the manifest file to the page and select upload.

-
Video tutorial: Add Amazon S3 as Cloud Storage in CVAT
Backblaze B2
Backblaze B2 is an S3-compatible cloud storage service. It can be used in CVAT by selecting Amazon S3 as the provider and specifying the Backblaze B2 endpoint (for example, https://s3.us-west-004.backblazeb2.com).
Create a bucket
To create a B2 bucket, do the following:
- Create a Backblaze account or log into an existing one.
- In the Backblaze console, go to B2 Cloud Storage > Buckets.
- Select Create a Bucket.
- Configure your bucket:
- Bucket Unique Name: Enter a globally unique name for your bucket.
- Files in Bucket: Select Private for secure access or Public for anonymous access.
- Default Encryption: (Optional) Enable server-side encryption for added security.
- Object Lock: (Optional) Enable if you need compliance features.
- Select Create a Bucket.
The new bucket will appear in your buckets list.
Upload data
Note
The manifest file is optional.You need to upload data for annotation and optionally the manifest.jsonl file.
- Prepare data. For more information, refer on how to prepare the dataset.
- Open the bucket and select Upload/Download.
- Drag and drop files or folders, or select Browse files to upload your data.
Alternatively, you can use the Backblaze CLI or any S3-compatible tool like the AWS CLI with B2 endpoints.
Access permissions
To access your B2 bucket from CVAT, you need to create Application Keys:
- In the Backblaze console, go to App Keys.
- Select Add a New Application Key.
- Configure the key:
- Name of Key: Enter a descriptive name (e.g., “CVAT Access”).
- Allow access to Bucket(s): Select the specific bucket you created, or choose All for access to all buckets.
- Type of Access: Select Read and Write for full access, or Read Only if you only need to import data.
- Allow List All Bucket Names: Enable if you want to list all buckets.
- File name prefix: (Optional) Restrict access to specific file prefixes.
- Duration: (Optional) Set an expiration time for the key.
- Select Create New Key.
- Important: Save the keyID and applicationKey immediately. The applicationKey is only shown once and cannot be retrieved later.
Warning
Store your applicationKey securely. It will only be displayed once during creation and cannot be recovered later.For more information, consult B2 Application Keys.
Attach Backblaze B2 storage
To attach B2 storage to CVAT, do the following:
- Log into CVAT.
- In CVAT, on the top menu select Cloud storages > on the opened page select +.
Fill in the following fields:
| CVAT field | Backblaze B2 value |
|---|---|
| Display name | Preferred display name for your storage. |
| Description | (Optional) Add a description of the storage. |
| Provider | From the drop-down list, select Amazon S3 (Backblaze B2 is S3-compatible). |
| Bucket name | Name of your B2 bucket. |
| Authentication type | Select Key ID and secret access key pair. |
| Access key ID | Enter the keyID from your B2 Application Key. |
| Secret access key | Enter the applicationKey from your B2 Application Key. |
| Endpoint URL | Required for B2: Enter your B2 S3 endpoint URL (for example, https://s3.us-west-004.backblazeb2.com). You can find the endpoint in your bucket details page. |
| Prefix | (Optional) Use to limit CVAT to a specific folder within the bucket. |
| Manifests | (Optional) Select + Add manifest and specify a manifest file name such as manifest.jsonl. |
Important
When using Backblaze B2, you must specify the Endpoint URL field with your B2 S3-compatible endpoint (e.g.,https://s3.us-west-004.backblazeb2.com).
This tells CVAT to connect to Backblaze instead of Amazon S3.
After filling in all the fields, select Submit.
Google Cloud Storage
Create a bucket
To create bucket, do the following:
-
Create Google account and log into it.
-
On the Google Cloud page, select Start Free, then enter the required data and accept the terms of service.
Note
Google requires to add payment, you will need a bank card to accomplish step 2. -
Create a Bucket with the following parameters:
- Name your bucket: Unique name.
- Choose where to store your data: Set up a location nearest to you.
- Choose a storage class for your data:
Set a default class>Standard. - Choose how to control access to objects:
Enforce public access prevention on this bucket>Uniform(default). - How to protect data:
None

You will be forwarded to the bucket.
Upload data
Note
The manifest file is optional.You need to upload data for annotation and the manifest.jsonl file.
- Prepare data. For more information, consult prepare the dataset.
- Open the bucket and from the top menu select Upload files or Upload folder (depends on how your files are organized).
Access permissions
To access Google Cloud Storage get a Project ID from cloud resource manager page

And follow instructions below based on the preferable type of access.
Authenticated access
For authenticated access you need to create a service account and key file.
To create a service account:
- On the Google Cloud platform, go to IAM & Admin > Service Accounts and select +Create Service Account.
- Enter your account name and select Create And Continue.
- Select a role, for example Basic > Viewer, and select Continue.
- (Optional) Give access rights to the service account.
- Select Done.

To create a key:
- Go to IAM & Admin > Service Accounts > select on account name > Keys.
- Select Add key and select Create new key > JSON
- Select Create. The key file will be downloaded automatically.

For more information about keys, consult Learn more about creating keys.
Anonymous access
To configure anonymous access:
- Open the bucket and go to the Permissions tab.
- Click + Grant access to add new principals.
- In the New principals field specify
allUsers, select roles:Cloud Storage Legacy>Storage Legacy Bucket Reader. - Select Save.

Now you can attach the Google Cloud Storage bucket to CVAT.
Attach Google Cloud Storage
To attach storage, do the following:
- Log into CVAT and in the separate tab open your bucket page.
- In the CVAT, on the top menu select Cloud storages > on the opened page select +.
Fill in the following fields:
| CVAT | Google Cloud Storage |
|---|---|
| Display name | Preferred display name for your storage. |
| Description | (Optional) Add description of storage. |
| Provider | From drop-down list select Google Cloud Storage. |
| Bucket name | Name of the bucket. You can find it on the storage browser page. |
| Authentication type | Depends on the bucket setup: Advanced: For self-hosted solution, if the key file was not attached, then environment variable GOOGLE_APPLICATION_CREDENTIALS that was specified for an environment will be used. For more information, consult Authenticate to Cloud services using client libraries. |
| Prefix | (Optional) Used to filter data from the bucket. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| Project ID | Project ID. For more information, consult projects page and cloud resource manager page. Note: Project name does not match the project ID. |
| Location | (Optional) Choose a region from the list or add a new one. For more information, consult Available locations. |
| Manifests | (Optional) Select + Add manifest and enter the name of the manifest file with an extension. For example: manifest.jsonl. |
After filling in all the fields, select Submit.
Video tutorial: Add Google Cloud Storage as Cloud Storage in CVAT
Microsoft Azure Blob Storage
Create a bucket
To create bucket, do the following:
-
Create an Microsoft Azure account and log into it.
-
Go to Azure portal, hover over the resource , and in the pop-up window select Create.

-
Enter a name for the group and select Review + create, check the entered data and select Create.
-
Go to the resource groups page, navigate to the group that you created and select Create resources.
-
On the marketplace page, use search to find Storage account.

-
Select on Storage account and on the next page select Create.
-
On the Basics tab, fill in the following fields:
- Storage account name: to access container from CVAT.
- Select a region closest to you.
- Select Performance > Standard.
- Select Local-redundancy storage (LRS).
- Select next: Advanced>.

-
On the Advanced page, fill in the following fields:
- (Optional) Disable Allow enabling public access on containers to prohibit anonymous access to the container.
- Select Next > Networking.

-
On the Networking tab, fill in the following fields:
-
If you want to change public access, enable Public access from all networks.
-
Select Next>Data protection.
You do not need to change anything in other tabs until you need some specific setup.
-
-
Select Review and wait for the data to load.
-
Select Create. Deployment will start.
-
After deployment is over, select Go to resource.

Create a container
To create container, do the following:
-
Go to the containers section and on the top menu select +Container

-
Enter the name of the container.
-
(Optional) In the Public access level drop-down, select type of the access.
Note: this field will inactive if you disabled Allow enabling public access on containers. -
Select Create.
Upload data
You need to upload data for annotation and the manifest.jsonl file.
-
Prepare data. For more information, refer on how to prepare the dataset.
-
Go to container and select Upload.
-
Select Browse for files and select images.
Note
If images are in folder, specify folder in the Advanced settings > Upload to folder. -
Select Upload.

SAS token and connection string
Use the SAS token or connection string to grant secure access to the container.
To configure the credentials:
- Go to Home > Resource groups > You resource name > Your storage account.
- On the left menu, select Shared access signature.
- Change the following fields:
- Allowed services: Enable Blob . Disable all other fields.
- Allowed resource types: Enable Container and Object. Disable all other fields.
- Allowed permissions: Enable Read, Write, and List. Disable all other fields.
- Start and expiry date: Set up start and expiry dates.
- Allowed protocols: Select HTTPS and HTTP
- Leave all other fields with default parameters.
- Select Generate SAS and connection string and copy SAS token or Connection string.

Personal use
For personal use, you can use the Access Key from your storage account in the CVAT SAS Token field.
To get the Access Key:
- In the Azure Portal, go to the Security + networking > Access Keys
- Select Show and copy the key.

Attach Azure Blob Storage
To attach storage, do the following:
- Log into CVAT and in the separate tab open your bucket page.
- In the CVAT, on the top menu select Cloud storages > on the opened page select +.
Fill in the following fields:
| CVAT | Azure |
|---|---|
| Display name | Preferred display name for your storage. |
| Description | (Optional) Add description of storage. |
| Provider | From drop-down list select Azure Blob Storage. |
| Container name` | Name of the cloud storage container. |
| Authentication type | Depends on the container setup. Account name and SAS token:
|
| Prefix | (Optional) Used to filter data from the bucket. By setting a default prefix, you ensure that only data from a specific folder in the cloud is used in CVAT. This will affect which files you see when creating a task with cloud data. |
| Manifests | (Optional) Select + Add manifest and enter the name of the manifest file with an extension. For example: manifest.jsonl. |
After filling in all the fields, select Submit.
Video tutorial: Add Microsoft Azure Blob Storage as Cloud Storage in CVAT
Prepare the dataset
For example, the dataset is The Oxford-IIIT Pet Dataset:
- Download the archive with images.
- Unpack the archive into the prepared folder.
- Create a manifest. For more information, consult Dataset manifest:
python <cvat repository>/utils/dataset_manifest/create.py --output-dir <your_folder> <your_folder>