Adding a Remote
Add a remote storage location:-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: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/storageorfile:///path/to/storage
Number of parallel jobs for upload/download operations.
Higher values speed up transfers but use more resources.
Number of parallel jobs for checksum calculation.
Enable version-aware operations for supported cloud storage.
Useful for S3, GCS, and Azure with versioning enabled.
Enable worktree mode for the remote.
Local & File Remotes
Local filesystem or network-mounted storage.Configuration
Parameters
Cache link type:
reflink, hardlink, symlink, or copy.reflink: Copy-on-write (fastest, limited support)hardlink: Hard links (fast, same filesystem required)symlink: Symbolic linkscopy: Full copy (slowest, most compatible)
Set to
group to make cache group-writable.
Useful for shared storage accessed by multiple users.Warn when using slow link types (copy).
Verify checksums after transfer.
Example
Amazon S3
Amazon S3 and S3-compatible storage (MinIO, DigitalOcean Spaces, etc.).Basic Setup
Authentication Parameters
AWS access key ID. Alternatively, set
AWS_ACCESS_KEY_ID environment variable.AWS secret access key. Alternatively, set
AWS_SECRET_ACCESS_KEY environment variable.AWS session token for temporary credentials.
AWS profile name from
~/.aws/credentials.Path to custom AWS credentials file.
Path to custom AWS config file.
Allow anonymous access to public buckets.
Region & Endpoint
AWS region (e.g.,
us-west-2, eu-central-1).Custom S3 endpoint URL for S3-compatible services:
- MinIO:
http://localhost:9000 - DigitalOcean:
https://nyc3.digitaloceanspaces.com
Connection Settings
Use HTTPS for connections.
Verify SSL certificates. Set to
false to disable or path to CA bundle.Read timeout in seconds.
Connection timeout in seconds.
Encryption
Server-side encryption algorithm:
AES256 or aws:kms.KMS key ID for KMS encryption.
Customer-provided encryption algorithm.
Customer-provided encryption key.
Access Control
Canned ACL:
private, public-read, public-read-write, authenticated-read, etc.Grant read permissions (grantee format:
id=xxx or emailAddress=xxx).Grant read ACP permissions.
Grant write ACP permissions.
Grant full control permissions.
Performance
Cache region information for faster bucket access.
Complete Example
S3 with encryption and custom ACL
S3 with encryption and custom ACL
.dvc/config:MinIO (S3-compatible)
MinIO (S3-compatible)
Google Cloud Storage (GCS)
Google Cloud Storage backend.Basic Setup
Authentication
Path to service account JSON key file.
Alternatively, set
GOOGLE_APPLICATION_CREDENTIALS environment variable.Google Cloud project name.
Allow anonymous access to public buckets.
Endpoint
Custom GCS endpoint URL (for emulators or compatible services).
Example
Microsoft Azure Blob Storage
Azure Blob Storage backend.Basic Setup
Authentication Methods
Azure storage connection string.Format:
DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...Storage account name.
Storage account key.
Shared Access Signature token.
Azure AD tenant ID for service principal authentication.
Azure AD client ID.
Azure AD client secret.
Allow anonymous access.
Credential Chain Control
Exclude environment variables from credential chain.
Exclude VS Code credentials.
Exclude shared token cache.
Exclude managed identity credentials.
Connection Settings
General timeout in seconds.
Read timeout in seconds.
Connection timeout in seconds.
Example
Using connection string
Using connection string
Using service principal
Using service principal
SSH / SFTP
Remote storage over SSH/SFTP.Basic Setup
Authentication
SSH username.
SSH password (not recommended, use key-based auth).
Prompt for password interactively.
Path to SSH private key file.
Passphrase for encrypted private key.
Prompt for passphrase interactively.
Use GSS-API authentication.
Allow SSH agent for authentication.
Connection Settings
SSH port number.
Connection timeout in seconds.
Maximum number of concurrent SSH sessions.
Cache Settings
Cache link type on remote:
reflink, hardlink, symlink, or copy.Example
HDFS
Hadoop Distributed File System.Basic Setup
Parameters
HDFS username.
Path to Kerberos ticket cache file.
HDFS replication factor.
WebHDFS
Web-based HDFS access.Basic Setup
Authentication
WebHDFS username.
WebHDFS password.
Use Kerberos authentication.
Kerberos principal name.
Delegation token.
Settings
Use HTTPS instead of HTTP.
Verify SSL certificates.
Proxy to specific DataNode.
Target for data proxy operations.
Alibaba OSS
Alibaba Cloud Object Storage Service.Basic Setup
Authentication
OSS access key ID.
OSS access key secret.
OSS endpoint URL (e.g.,
oss-cn-hangzhou.aliyuncs.com).Example
Google Drive
Google Drive backend (experimental).Basic Setup
Authentication
Google OAuth client ID.
Google OAuth client secret.
Path to user credentials file.
Service Account
Use service account for authentication.
Path to service account JSON file.
Email for service account impersonation.
Settings
Move files to trash instead of permanent deletion.
Acknowledge abuse risk when downloading flagged files.
HTTP / HTTPS
Read-only remote over HTTP(S).Basic Setup
Authentication
Authentication method:
basic, digest, or custom.Username for basic/digest auth.
Password for authentication.
Prompt for password interactively.
Custom authentication header value.Example:
Bearer YOUR_TOKENConnection Settings
Verify SSL certificates. Can be
true, false, or path to CA bundle.HTTP method to use (default: GET).
Connection timeout in seconds.
Read timeout in seconds.
WebDAV / WebDAVs
WebDAV protocol support.Basic Setup
Authentication
Username.
Password.
Prompt for password.
Authentication token.
Command to generate bearer token dynamically.
Custom authentication header.
SSL/TLS
Path to client certificate.
Path to client private key.
Verify SSL certificates.
Connection timeout in seconds.
Best Practices
Store credentials securely
Store credentials securely
Use Or use environment variables:
.dvc/config.local for sensitive data:Set up multiple remotes
Set up multiple remotes
Configure different remotes for different purposes:
Use IAM roles for cloud storage
Use IAM roles for cloud storage
When running on cloud instances, use IAM roles instead of access keys:AWS EC2:Azure VM:
Optimize transfer performance
Optimize transfer performance
Adjust job counts based on your network and CPU:
Enable verification for critical data
Enable verification for critical data
For important datasets, enable post-transfer verification:
Remote Management Commands
Troubleshooting
Authentication failures
Authentication failures
Check credentials:Common issues:
- Expired credentials
- Wrong region/endpoint
- Missing permissions
- Credentials in wrong config level
Slow transfers
Slow transfers
Optimize settings:Considerations:
- Network bandwidth
- Remote storage throughput limits
- Number of files vs. file sizes
SSL/TLS errors
SSL/TLS errors
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