KServe Storage Handler. This module is responsible to download the models from the provided source
Project description
kserve-storage
A Python module for handling model storage and retrieval for KServe. This package provides a unified API to download models from various storage backends including cloud providers, file systems, and model hubs.
Features
- Support for multiple storage backends:
- Local file system
- Google Cloud Storage (GCS)
- Amazon S3
- Azure Blob Storage
- Azure File Share
- HTTP/HTTPS URLs
- HDFS/WebHDFS
- Hugging Face Hub
- Automatic extraction of compressed files (zip, tar.gz, tgz)
- Configuration via environment variables
- Logging and error handling
Installation
pip install kserve-storage
Or with Poetry:
uv add kserve-storage
Usage
The main entry point is the Storage class which provides a download method:
from kserve_storage import Storage
# Download from GCS to a temporary directory
model_dir = Storage.download("gs://your-bucket/model")
# Download from S3 to a specific directory
model_dir = Storage.download("s3://your-bucket/model", "/path/to/destination")
Supported Storage Providers
Local File System
model_dir = Storage.download("file:///path/to/model")
# or using direct path
model_dir = Storage.download("/path/to/model")
Google Cloud Storage
model_dir = Storage.download("gs://bucket-name/model-path")
Amazon S3
model_dir = Storage.download("s3://bucket-name/model-path")
Azure Blob Storage
model_dir = Storage.download("https://account-name.blob.core.windows.net/container-name/model-path")
Azure File Share
model_dir = Storage.download("https://account-name.file.core.windows.net/share-name/model-path")
HTTP/HTTPS URLs
model_dir = Storage.download("https://example.com/path/to/model.zip")
HDFS
model_dir = Storage.download("hdfs://path/to/model")
# or WebHDFS
model_dir = Storage.download("webhdfs://path/to/model")
Hugging Face Hub
model_dir = Storage.download("hf://org-name/model-name")
# With specific revision
model_dir = Storage.download("hf://org-name/model-name:revision")
Environment Variables
Hugging Face Hub Configuration
These are all handled by the huggingface_hub package, you can see all the available environment variables here.
AWS/S3 Configuration / Environments variables
AWS_ENDPOINT_URL: Custom endpoint URL for S3-compatible storageAWS_ACCESS_KEY_ID: Access key for S3AWS_SECRET_ACCESS_KEY: Secret access key for S3AWS_DEFAULT_REGION: AWS regionAWS_CA_BUNDLE: Path to custom CA bundleS3_VERIFY_SSL: Enable/disable SSL verificationS3_USER_VIRTUAL_BUCKET: Use virtual hosted-style URLsS3_USE_ACCELERATE: Use transfer accelerationS3_MAX_FILE_CONCURRENCY: Number of files to download in parallelS3_CONNECT_TIMEOUT: Connection timeout in seconds (default: 15)S3_READ_TIMEOUT: Read timeout in seconds (default: 30)S3_MAX_ATTEMPTS: Maximum retry attempts for S3 operations (default: 3)awsAnonymousCredential: Use unsigned requests for public access
Azure Configuration
AZURE_STORAGE_ACCESS_KEY: Storage account access keyAZ_TENANT_ID/AZURE_TENANT_ID: Azure AD tenant IDAZ_CLIENT_ID/AZURE_CLIENT_ID: Azure AD client IDAZ_CLIENT_SECRET/AZURE_CLIENT_SECRET: Azure AD client secretAZURE_MAX_FILE_CONCURRENCY: number of files to download parallel (blob only)AZURE_MAX_CHUNK_CONCURRENCY: number of chunks for each file to download parallel (blob only)
HDFS Configuration
HDFS_SECRET_DIR: Directory containing HDFS configuration filesHDFS_NAMENODE: HDFS namenode addressUSER_PROXY: User proxy for HDFSHDFS_ROOTPATH: Root path in HDFSKERBEROS_PRINCIPAL: Kerberos principal for authenticationKERBEROS_KEYTAB: Path to Kerberos keytab fileTLS_CERT,TLS_KEY,TLS_CA: TLS configuration filesTLS_SKIP_VERIFY: Skip TLS verificationN_THREADS: Number of download threads
Git Configuration (HTTPS-only)
GIT_USERNAME,GIT_PASSWORD: Git HTTPS authentication (optional; username also parsed from url)
Storage Configuration
Storage configuration can be provided through environment variables:
STORAGE_CONFIG: JSON string containing storage configurationSTORAGE_OVERRIDE_CONFIG: JSON string to override storage configuration
License
Apache License 2.0 - See LICENSE for details.
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 kserve_storage-0.17.0rc1.tar.gz.
File metadata
- Download URL: kserve_storage-0.17.0rc1.tar.gz
- Upload date:
- Size: 31.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09939d7501520d60c799321269894939e414a1f7cb1d4c8d45cde926e55b0a23
|
|
| MD5 |
6e6f96b984a523d5a0b2fdf1581a853d
|
|
| BLAKE2b-256 |
d8349353d27676d3fa0d46ac2e9607a6a5b251f2a73c500b5ed6c6a77c80cd74
|
File details
Details for the file kserve_storage-0.17.0rc1-py3-none-any.whl.
File metadata
- Download URL: kserve_storage-0.17.0rc1-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e89c88af1d5686f2997f034255ed3c23c0fec6a1aa03f0c3dc12d88a83fdcd84
|
|
| MD5 |
2c8eadf03599f8f32a53e78b4a2402f7
|
|
| BLAKE2b-256 |
e89e8db2eefc1cbfd402fc5caaa25809ffc106bbbd8962ed03ff04254d1d26ce
|