Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

storage-kernel-provider-sftp

SFTP provider for Storage Kernel.

This provider maps StorageLocation.directory to a remote root directory and StorageLocation.prefix to a namespace below that root.

Install

uv add storage-kernel-contracts storage-kernel-provider-sftp

Usage

from storage_kernel.contracts import StorageClientOptions, StorageLocation
from storage_kernel.provider_sftp import SftpStorageProviderOptions, create_sftp_storage_client

storage = create_sftp_storage_client(
    StorageClientOptions(location=StorageLocation(directory="/upload", prefix="prod")),
    SftpStorageProviderOptions(
        host="sftp.example.com",
        username="storage",
        password="secret",
        known_hosts_path="/etc/ssh/storage_known_hosts",
    ),
)

await storage.send_content("docs/readme.txt", "Hello")

Signed URLs are not supported by SFTP and raise a normalized capability error.

Provider Options

Option Purpose
host SFTP server host
port SFTP server port, defaulting to 22
username Username for authentication
password Password authentication or private-key passphrase companion
private_key Private key content as str or bytes
private_key_path Path to a private key file
passphrase Private key passphrase
known_hosts_path OpenSSH known_hosts verification file
host_key_sha256 OpenSSH SHA256:<base64> host fingerprint
host_verifier Custom host-key verification callable
dangerously_disable_host_key_verification Explicit unsafe bypass
root_directory Fallback root when StorageLocation.directory is absent
public_base_url Enables get_public_url for externally served files
client Optional caller-owned SFTP client

Capabilities

  • full binary and text reads/writes
  • remote read streams and writable upload streams
  • recursive directory reads and deletes
  • same-provider native copy through the SFTP client
  • password, private-key and passphrase-protected private-key authentication
  • explicit known-host, fingerprint or custom host-key verification
  • public URLs when public_base_url is configured

Exactly one host identity policy is required when the provider creates the paramiko client. An injected client owns its connection policy. Set dangerously_disable_host_key_verification=True only for controlled environments where host identity verification is intentionally bypassed, such as disposable local integration servers.

When private_key is provided, invalid key content or a wrong passphrase fails as a configuration error; the provider does not silently discard the key and fall back to another credential source.

Metadata

Release files for storage-kernel-provider-sftp 0.1.0a5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for storage-kernel-provider-sftp 0.1.0a5
File Size Uploaded Provenance
storage_kernel_provider_sftp-0.1.0a5.tar.gz 11.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for storage-kernel-provider-sftp 0.1.0a5
File Interpreter ABI Platform
storage_kernel_provider_sftp-0.1.0a5-py3-none-any.whl Python 3 none any Details

Total release size: 27.6 kB

Release files / storage_kernel_provider_sftp-0.1.0a5.tar.gz

Download URL storage_kernel_provider_sftp-0.1.0a5.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1714b42d5c5827f839e0ac918471f6b2621ea3c95081c49476c4bddd5631cf17
BLAKE2b-256 checksum
How to use checksums
c9b3168a516b97928035064cc13a7a26ab9c542b6c33bc459f7031e9ae21bf8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / storage_kernel_provider_sftp-0.1.0a5-py3-none-any.whl

Download URL storage_kernel_provider_sftp-0.1.0a5-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
322b8ee89fb8290ce758e9adb0186900de1e819fc8186ff25f8ee5d2590f289d
BLAKE2b-256 checksum
How to use checksums
60dcfb6da8f854a49b129227eb34ae7446790d9839912f983a4656bfb61266ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Security for storage-kernel-provider-sftp 0.1.0a5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page