Overview
Remote storage allows you to store your data, models, and pipeline outputs outside your Git repository. This enables team collaboration, backup, and access from different machines or environments.DVC supports many storage types: Amazon S3, Google Cloud Storage, Azure Blob Storage, SSH, HTTP, and more.
Setting Up Remote Storage
1
Add a remote
Configure a remote storage location:The
-d flag sets this as the default remote.2
Configure credentials
Set up authentication for your storage:
- AWS S3
- Google Cloud Storage
- Azure Blob Storage
- SSH
3
Commit configuration
Save remote configuration to Git:
Supported Storage Types
- Amazon S3
- Google Cloud Storage
- Azure Blob Storage
- SSH/SFTP
- Local/Network
- HTTP/HTTPS
Pushing and Pulling Data
Push to Remote
Upload tracked data to remote storage:Pull from Remote
Download tracked data from remote storage:Fetch (Download to Cache Only)
Download data to cache without checking out to workspace:Use
fetch + checkout when you want to download data but not immediately use it in your workspace.Managing Remotes
List Remotes
Set Default Remote
Modify Remote Settings
Remove Remote
Rename Remote
Remote Configuration Levels
DVC supports three configuration levels:- Project (default)
- Local
- Global
- System
.dvc/config (committed to Git, shared with team).Advanced Remote Options
Parallel Jobs
Control how many files are transferred simultaneously:Bandwidth Limit
Connection Timeout
SSL Verification
Custom Endpoint
Server-Side Encryption
Checking Storage Status
Compare local cache with remote:Use
dvc status -c to see what needs to be pushed or pulled.Best Practices
Separate credentials
Store credentials in
.dvc/config.local (not committed) or use environment variablesUse cloud IAM
Prefer IAM roles and instance profiles over access keys when possible
Enable versioning
Turn on bucket versioning in S3/GCS to protect against accidental deletions
Set lifecycle policies
Configure cloud storage lifecycle rules to archive or delete old data
Use multiple remotes
Configure backup remotes for disaster recovery
Optimize transfers
Adjust
-j (jobs) based on network bandwidth and file countComplete Examples
AWS S3 Setup
1
Create S3 bucket
2
Configure DVC remote
3
Set credentials (local)
4
Push data
Google Cloud Storage Setup
1
Create GCS bucket
2
Configure DVC remote
3
Set credentials (local)
4
Push data
Multi-Remote Setup
Configure primary and backup remotes:Troubleshooting
Authentication errors
Authentication errors
Check credentials configuration:Verify cloud provider credentials:
Slow transfers
Slow transfers
Increase parallel jobs:Or configure permanently:
Network timeouts
Network timeouts
Increase timeout:
Permission denied
Permission denied
Check bucket permissions and IAM policies. Ensure your credentials have:
- S3:
s3:GetObject,s3:PutObject,s3:ListBucket - GCS:
storage.objects.get,storage.objects.create,storage.buckets.list
Next Steps
Collaboration
Share data and pipelines with your team using remote storage
Remote Config
Explore advanced remote configuration options