Yandex Disk remote storage plugin for DVC
Project description
dvc-yadisk
Yandex Disk remote storage plugin for DVC (Data Version Control).
Installation
# Using uv
uv add dvc-yadisk
# Using pip
pip install dvc-yadisk
After installation, enable the plugin:
# Run the enable script to register the plugin with DVC
dvc-yadisk-enable
This creates a sitecustomize.py file in your Python environment that loads the plugin automatically when DVC starts.
Configuration
1. Get Yandex Disk OAuth Token
- Go to Yandex Poginon
- Create a token
- Copy the token
2. Configure DVC Remote
# Add a Yandex Disk remote
dvc remote add -d myremote yadisk://my-dvc-data
# Set the OAuth token (use --local to avoid committing token to git)
dvc remote modify --local myremote token YOUR_OAUTH_TOKEN
Or use environment variable:
export YADISK_TOKEN=YOUR_OAUTH_TOKEN
3. Use DVC as Normal
# Track data
dvc add data/
# Push to Yandex Disk
dvc push
# Pull from Yandex Disk
dvc pull
Configuration Options
| Option | Environment Variable | Description |
|---|---|---|
token |
YADISK_TOKEN |
OAuth access token (required) |
Example Usage
from dvc_yadisk import YaDiskFileSystem
# Create filesystem instance
fs = YaDiskFileSystem(token="your_oauth_token")
# List files
files = fs.ls("my-folder")
# Check if file exists
exists = fs.exists("my-folder/data.csv")
# Read file
data = fs.cat_file("my-folder/data.csv")
# Write file
fs.pipe_file("my-folder/output.txt", b"Hello, World!")
Async Usage
import asyncio
from dvc_yadisk import get_async_filesystem
async def main():
AsyncFS = get_async_filesystem()
fs = AsyncFS(token="your_oauth_token")
# List files
files = await fs.ls("my-folder")
# Read file
data = await fs.cat_file("my-folder/data.csv")
asyncio.run(main())
Limitations
- Maximum file size: 1GB (50GB for Yandex 360 subscribers)
- Upload URLs are valid for 30 minutes
- API rate limits apply
Development
# Clone repository
git clone https://github.com/Suro4ek/dvc-yadisk.git
cd dvc-yadisk
# Install with dev dependencies
uv sync --dev
# Run tests
uv run pytest
# Run tests with coverage
uv run pytest --cov=dvc_yadisk
# Type checking
uv run mypy src/dvc_yadisk
# Linting
uv run ruff check src/dvc_yadisk
License
Apache License 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dvc_yadisk-0.1.8.tar.gz.
File metadata
- Download URL: dvc_yadisk-0.1.8.tar.gz
- Upload date:
- Size: 197.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
518c877f50895bd1fe53ad83c57d930c8a7a2807465be0f7965e1b581447d2eb
|
|
| MD5 |
f90176af7c9f930273a18bebfbddb24d
|
|
| BLAKE2b-256 |
48474b02c7c0afbb125af5fa15772b97194a334c0388f296854127aab54bfc43
|
Provenance
The following attestation bundles were made for dvc_yadisk-0.1.8.tar.gz:
Publisher:
release.yml on Suro4ek/dvc-yadisk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dvc_yadisk-0.1.8.tar.gz -
Subject digest:
518c877f50895bd1fe53ad83c57d930c8a7a2807465be0f7965e1b581447d2eb - Sigstore transparency entry: 812805608
- Sigstore integration time:
-
Permalink:
Suro4ek/dvc-yadisk@14bb966a6af13b53c069f9b5a07746a8d0477a47 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Suro4ek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@14bb966a6af13b53c069f9b5a07746a8d0477a47 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dvc_yadisk-0.1.8-py3-none-any.whl.
File metadata
- Download URL: dvc_yadisk-0.1.8-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
237de8125c1e98fed1ea676e77403893858d82f36a5542820383ae72ec53c795
|
|
| MD5 |
79b804db93e82e4438c1ab7e6f4f884e
|
|
| BLAKE2b-256 |
5a34a646a0cd7ea27416521470bcf95473dda86986fd4a4cc5e7850aaba2d2d3
|
Provenance
The following attestation bundles were made for dvc_yadisk-0.1.8-py3-none-any.whl:
Publisher:
release.yml on Suro4ek/dvc-yadisk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dvc_yadisk-0.1.8-py3-none-any.whl -
Subject digest:
237de8125c1e98fed1ea676e77403893858d82f36a5542820383ae72ec53c795 - Sigstore transparency entry: 812805619
- Sigstore integration time:
-
Permalink:
Suro4ek/dvc-yadisk@14bb966a6af13b53c069f9b5a07746a8d0477a47 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Suro4ek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@14bb966a6af13b53c069f9b5a07746a8d0477a47 -
Trigger Event:
release
-
Statement type: