Skip to main content

stowrypy

PyPI version Python versions CI codecov License: MIT

A Python SDK for generating Stowry presigned URLs.

Installation

pip install stowrypy

Quick Start

from stowrypy import StowryClient

client = StowryClient(
    endpoint="http://localhost:5708",
    access_key="your-access-key",
    secret_key="your-secret-key",
)

# Generate a presigned URL for downloading a file
get_url = client.presign_get("/files/document.pdf")

# Generate a presigned URL for uploading a file
put_url = client.presign_put("/files/upload.txt")

# Generate a presigned URL for deleting a file
delete_url = client.presign_delete("/files/old.txt")

Usage with HTTP Clients

import requests
from stowrypy import StowryClient

client = StowryClient(
    endpoint="http://localhost:5708",
    access_key="your-access-key",
    secret_key="your-secret-key",
)

# Download a file
get_url = client.presign_get("/files/document.pdf")
response = requests.get(get_url)
content = response.content

# Upload a file
put_url = client.presign_put("/files/upload.txt")
requests.put(put_url, data=b"Hello, World!")

# Delete a file
delete_url = client.presign_delete("/files/old.txt")
requests.delete(delete_url)

API Reference

StowryClient

StowryClient(endpoint: str, access_key: str, secret_key: str)

Creates a new Stowry client.

Parameter Type Description
endpoint str Stowry server URL (e.g., http://localhost:5708)
access_key str Access key ID
secret_key str Secret access key

Methods

presign_get

presign_get(path: str, expires: int = 900) -> str

Generates a presigned URL for GET requests.

Parameter Type Default Description
path str - Object path (must start with /)
expires int 900 URL validity in seconds (1-604800)

presign_put

presign_put(path: str, expires: int = 900) -> str

Generates a presigned URL for PUT requests.

Parameter Type Default Description
path str - Object path (must start with /)
expires int 900 URL validity in seconds (1-604800)

presign_delete

presign_delete(path: str, expires: int = 900) -> str

Generates a presigned URL for DELETE requests.

Parameter Type Default Description
path str - Object path (must start with /)
expires int 900 URL validity in seconds (1-604800)

generate_presigned_url

generate_presigned_url(operation: str, path: str, expires: int = 900) -> str

S3-compatible interface for generating presigned URLs.

Parameter Type Default Description
operation str - get_object, put_object, or delete_object
path str - Object path (must start with /)
expires int 900 URL validity in seconds (1-604800)

URL Expiration

  • Default: 900 seconds (15 minutes)
  • Minimum: 1 second
  • Maximum: 604800 seconds (7 days)

Signing Scheme

This SDK implements Stowry's native signing scheme. URLs are signed using HMAC-SHA256 with the following query parameters:

Parameter Description
X-Stowry-Credential Access key ID
X-Stowry-Date Unix timestamp (seconds)
X-Stowry-Expires Validity in seconds
X-Stowry-Signature Hex-encoded HMAC-SHA256 signature

For AWS Signature V4 compatibility, use boto3. The Stowry server supports both signing schemes.

License

MIT

Metadata

Release files for stowrypy 0.2.0

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

Source distribution (sdist)

Source distribution for stowrypy 0.2.0
File Size Uploaded
stowrypy-0.2.0.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stowrypy 0.2.0
File Interpreter ABI Platform
stowrypy-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.6 kB

Release files / stowrypy-0.2.0.tar.gz

Download URL stowrypy-0.2.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
50e94cc98793fa06fa4184c7d355ceecc2e08dd661f2af55c8746b6318440ad0
BLAKE2b-256 checksum
How to use checksums
09afe5741698aa9cde0ea243835bc9d3f9caf241ad407feadd61b8e5a6100e4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.

Transparency log

Release files / stowrypy-0.2.0-py3-none-any.whl

Download URL stowrypy-0.2.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
429b35836217db72bd29823ad36423f0f9de86d3a887a8837f68937afd172f45
BLAKE2b-256 checksum
How to use checksums
13393ecdbe85af9bf26a47a3b4c5139454278655759f08303b765567d95024da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

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