This release is a pre-release and may not be stable for production use.
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.
Release files for kserve-storage 0.21.0rc0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kserve_storage-0.21.0rc0.tar.gz | 53.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kserve_storage-0.21.0rc0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 86.2 kB
Release files / kserve_storage-0.21.0rc0.tar.gz
| Download URL | kserve_storage-0.21.0rc0.tar.gz |
|---|---|
| Size | 53.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a9d2981bc6555d63434f05af941f55587c21578771911fb322626e0146e7f692
|
|
BLAKE2b-256 checksum How to use checksums |
2095e3e3bd604509d27f657a5694f33f62c83a6a6ff57dafe60a711b4dcf6ef4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.8
|
Release files / kserve_storage-0.21.0rc0-py3-none-any.whl
| Download URL | kserve_storage-0.21.0rc0-py3-none-any.whl |
|---|---|
| Size | 33.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91925914c7fa3f514dc2e01bf3dc0f8f7b5a61eb5335357b64b8055f2cd4bbf8
|
|
BLAKE2b-256 checksum How to use checksums |
3047b3982c8b3e6a6ce0097b2fc39cb957af27c94c4ac842cf3cef6c6a880a3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.8
|