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.0a7

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.0a7
File Size Uploaded Provenance
storage_kernel_provider_sftp-0.1.0a7.tar.gz 11.9 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 27.6 kB

Release files / storage_kernel_provider_sftp-0.1.0a7.tar.gz

Download URL storage_kernel_provider_sftp-0.1.0a7.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c7bc7483b028c943026179336546851a7576e852a3260639506b335fae3c5acb
BLAKE2b-256 checksum
How to use checksums
b46e1d7fe028720163b3c1409749ce24a95f7e077d0cf36ef889d0108eed7b59
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.0a7-py3-none-any.whl

Download URL storage_kernel_provider_sftp-0.1.0a7-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a737d808ea518e26ac9a6d290c3c0f83be62d70b3e73cb1bf04b17c681ceba9f
BLAKE2b-256 checksum
How to use checksums
54ed5fc3569b0febb8a690af559cd0e464c49d2c9a1c097caae99de1444d3150
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.0a7

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