Skip to main content
DVC supports various remote storage backends for storing and sharing data. This guide covers all available storage options and their configuration parameters.

Adding a Remote

Add a remote storage location:
The -d flag sets it as the default remote. Configuration is stored in .dvc/config:
Use dvc remote add to configure remotes, or edit .dvc/config directly.

Common Configuration

These options apply to all remote types:
string
required
Remote storage URL. Format depends on the storage type:
  • S3: s3://bucket/path
  • GCS: gs://bucket/path
  • Azure: azure://container/path
  • SSH: ssh://user@host:/path
  • Local: /path/to/storage or file:///path/to/storage
integer
default:"4"
Number of parallel jobs for upload/download operations. Higher values speed up transfers but use more resources.
integer
default:"4"
Number of parallel jobs for checksum calculation.
boolean
default:"false"
Enable version-aware operations for supported cloud storage. Useful for S3, GCS, and Azure with versioning enabled.
boolean
default:"false"
Enable worktree mode for the remote.

Local & File Remotes

Local filesystem or network-mounted storage.

Configuration

Parameters

string
Cache link type: reflink, hardlink, symlink, or copy.
  • reflink: Copy-on-write (fastest, limited support)
  • hardlink: Hard links (fast, same filesystem required)
  • symlink: Symbolic links
  • copy: Full copy (slowest, most compatible)
Can specify multiple as comma-separated list (tried in order).
string
Set to group to make cache group-writable. Useful for shared storage accessed by multiple users.
Warn when using slow link types (copy).
boolean
default:"false"
Verify checksums after transfer.

Example

Amazon S3

Amazon S3 and S3-compatible storage (MinIO, DigitalOcean Spaces, etc.).

Basic Setup

Authentication Parameters

string
AWS access key ID. Alternatively, set AWS_ACCESS_KEY_ID environment variable.
string
AWS secret access key. Alternatively, set AWS_SECRET_ACCESS_KEY environment variable.
Store credentials in .dvc/config.local (git-ignored) or use environment variables.
string
AWS session token for temporary credentials.
string
AWS profile name from ~/.aws/credentials.
string
Path to custom AWS credentials file.
string
Path to custom AWS config file.
boolean
default:"false"
Allow anonymous access to public buckets.

Region & Endpoint

string
AWS region (e.g., us-west-2, eu-central-1).
string
Custom S3 endpoint URL for S3-compatible services:
  • MinIO: http://localhost:9000
  • DigitalOcean: https://nyc3.digitaloceanspaces.com

Connection Settings

boolean
default:"true"
Use HTTPS for connections.
boolean | string
default:"true"
Verify SSL certificates. Set to false to disable or path to CA bundle.
integer
Read timeout in seconds.
integer
Connection timeout in seconds.

Encryption

string
Server-side encryption algorithm: AES256 or aws:kms.
string
KMS key ID for KMS encryption.
string
Customer-provided encryption algorithm.
string
Customer-provided encryption key.

Access Control

string
Canned ACL: private, public-read, public-read-write, authenticated-read, etc.
string
Grant read permissions (grantee format: id=xxx or emailAddress=xxx).
string
Grant read ACP permissions.
string
Grant write ACP permissions.
string
Grant full control permissions.

Performance

boolean
Cache region information for faster bucket access.

Complete Example

Resulting .dvc/config:

Google Cloud Storage (GCS)

Google Cloud Storage backend.

Basic Setup

Authentication

string
Path to service account JSON key file. Alternatively, set GOOGLE_APPLICATION_CREDENTIALS environment variable.
string
Google Cloud project name.
boolean
default:"false"
Allow anonymous access to public buckets.

Endpoint

string
Custom GCS endpoint URL (for emulators or compatible services).

Example

Microsoft Azure Blob Storage

Azure Blob Storage backend.

Basic Setup

Authentication Methods

string
Azure storage connection string.Format: DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...
string
Storage account name.
string
Storage account key.
string
Shared Access Signature token.
string
Azure AD tenant ID for service principal authentication.
string
Azure AD client ID.
string
Azure AD client secret.
boolean
default:"false"
Allow anonymous access.

Credential Chain Control

boolean
Exclude environment variables from credential chain.
boolean
Exclude VS Code credentials.
boolean
Exclude shared token cache.
boolean
Exclude managed identity credentials.

Connection Settings

integer
General timeout in seconds.
integer
Read timeout in seconds.
integer
Connection timeout in seconds.

Example

SSH / SFTP

Remote storage over SSH/SFTP.

Basic Setup

Authentication

string
SSH username.
string
SSH password (not recommended, use key-based auth).
boolean
Prompt for password interactively.
string
Path to SSH private key file.
string
Passphrase for encrypted private key.
boolean
Prompt for passphrase interactively.
boolean
Use GSS-API authentication.
boolean
Allow SSH agent for authentication.

Connection Settings

integer
default:"22"
SSH port number.
integer
Connection timeout in seconds.
integer
Maximum number of concurrent SSH sessions.

Cache Settings

string
Cache link type on remote: reflink, hardlink, symlink, or copy.

Example

HDFS

Hadoop Distributed File System.

Basic Setup

Parameters

string
HDFS username.
string
Path to Kerberos ticket cache file.
integer
HDFS replication factor.

WebHDFS

Web-based HDFS access.

Basic Setup

Authentication

string
WebHDFS username.
string
WebHDFS password.
boolean
Use Kerberos authentication.
string
Kerberos principal name.
string
Delegation token.

Settings

boolean
Use HTTPS instead of HTTP.
boolean | string
Verify SSL certificates.
string
Proxy to specific DataNode.
string
Target for data proxy operations.

Alibaba OSS

Alibaba Cloud Object Storage Service.

Basic Setup

Authentication

string
OSS access key ID.
string
OSS access key secret.
string
OSS endpoint URL (e.g., oss-cn-hangzhou.aliyuncs.com).

Example

Google Drive

Google Drive backend (experimental).

Basic Setup

Authentication

string
Google OAuth client ID.
string
Google OAuth client secret.
string
Path to user credentials file.

Service Account

boolean
Use service account for authentication.
string
Path to service account JSON file.
string
Email for service account impersonation.

Settings

boolean
default:"false"
Move files to trash instead of permanent deletion.
boolean
default:"false"
Acknowledge abuse risk when downloading flagged files.

HTTP / HTTPS

Read-only remote over HTTP(S).

Basic Setup

Authentication

string
Authentication method: basic, digest, or custom.
string
Username for basic/digest auth.
string
Password for authentication.
boolean
Prompt for password interactively.
string
Custom authentication header value.Example: Bearer YOUR_TOKEN

Connection Settings

boolean | string
Verify SSL certificates. Can be true, false, or path to CA bundle.
string
HTTP method to use (default: GET).
number
Connection timeout in seconds.
number
Read timeout in seconds.

WebDAV / WebDAVs

WebDAV protocol support.

Basic Setup

Authentication

string
Username.
string
Password.
boolean
Prompt for password.
string
Authentication token.
string
Command to generate bearer token dynamically.
string
Custom authentication header.

SSL/TLS

string
Path to client certificate.
string
Path to client private key.
boolean | string
Verify SSL certificates.
integer
Connection timeout in seconds.

Best Practices

Use .dvc/config.local for sensitive data:
Or use environment variables:
Configure different remotes for different purposes:
When running on cloud instances, use IAM roles instead of access keys:AWS EC2:
Azure VM:
Adjust job counts based on your network and CPU:
For important datasets, enable post-transfer verification:
Verification doubles the time needed for transfers but ensures data integrity.

Remote Management Commands

Troubleshooting

Check credentials:
Common issues:
  • Expired credentials
  • Wrong region/endpoint
  • Missing permissions
  • Credentials in wrong config level
Optimize settings:
Considerations:
  • Network bandwidth
  • Remote storage throughput limits
  • Number of files vs. file sizes
Disable verification (not recommended for production):
Or provide CA bundle:

Next Steps

Configuration Overview

Learn about DVC configuration system

DVC Files

Understand DVC file formats