Unofficial Python SDK for Neva Object Storage (S3-compatible).
Project description
ate-neva-obst
Unofficial Python SDK for Neva Object Storage (S3-compatible).
Installation
pip install ate-neva-obst
SDK Usage
from neva_obst import ObjectsClient
from neva_obst.client import ObjectsConfig
config = ObjectsConfig(
access_key="YOUR_ACCESS_KEY",
secret_key="YOUR_SECRET_KEY",
bucket="my-bucket",
)
with ObjectsClient(config) as client:
# Upload file
key = client.upload("./photo.jpg")
print(f"Uploaded: {key}")
# Upload with custom object key
client.upload("./document.pdf", object_key="reports/2024/document.pdf")
# Check if object exists
if client.object_exists("photo.jpg"):
print("Object exists!")
# List all objects
for obj in client.list():
print(f"{obj.key} {obj.size} bytes {obj.last_modified}")
# Get only object keys
keys = client.list_keys(prefix="reports/")
# Download object
client.download(object_key="photo.jpg", local_path="./photo.jpg")
# Generate download URL (default expiry)
url = client.get_download_url("photo.jpg")
# Generate download URL with custom expiry (1 hour)
url = client.get_download_url("photo.jpg", expires_in=3600)
# Delete object
client.delete("photo.jpg")
Error Handling
from neva_obst import ObjectsClient, UploadError, ListError, DownloadError, ObjectsError
try:
client.upload("./file.txt")
except FileNotFoundError as e:
print(f"File not found: {e}")
except UploadError as e:
print(f"Upload failed [{e.code}]: {e}")
except ObjectsError as e:
print(f"General error: {e}")
Full Configuration
config = ObjectsConfig(
access_key="YOUR_ACCESS_KEY",
secret_key="YOUR_SECRET_KEY",
bucket="my-bucket",
endpoint="https://s3.nevaobjects.id", # default
default_expiry=3600, # URL expiry in seconds
)
CLI Usage
Set credentials once, then use any command.
nevaobst configure
Credentials can also be set via environment variables or flags on each command.
| Source | Variables |
|---|---|
| Environment | NEVA_ACCESS_KEY, NEVA_SECRET_KEY, NEVA_BUCKET, NEVA_ENDPOINT |
| Flags | --access-key, --secret-key, --bucket, --endpoint |
| Config file | ~/.neva/config (set via nevaobst configure) |
Priority: flags → env vars → config file
Commands
upload
nevaobst upload photo.jpg
nevaobst upload "images/*" --prefix uploads/2024/
nevaobst upload report.pdf --key docs/report-q1.pdf
list
nevaobst list
nevaobst list -fs # show size + last modified
nevaobst list --prefix uploads/
nevaobst list --json
Output is displayed as a file tree:
📄 text.txt
📄 readme.md
📁 reports/
📄 q1.pdf
📄 q2.pdf
📁 uploads/
📁 2024/
📄 photo.jpg
info
nevaobst info photo.jpg
nevaobst info photo.jpg --json
get-url
nevaobst get-url photo.jpg
nevaobst get-url report.pdf --expires 3600
delete
nevaobst delete photo.jpg
nevaobst delete a.jpg b.jpg c.jpg --force
Global Flags
Every command supports:
| Flag | Description |
|---|---|
--json |
Output as JSON |
--profile |
Use a named config profile (default: default) |
--help |
Show help for the command |
Changelog
2026-03-09
- Improved error handling (better 404 detection)
- Added automatic Content-Type detection during upload
- Added CLI (
nevaobst)
2026-03-07
- Project renamed from ate-dme-obst → ate-neva-obst
2026-02-28
- Initial release of ate-neva-obst SDK
Disclaimer
- This package is not officially affiliated with Neva Cloud or Domainesia.
- The SDK is stateless and does not transmit user data to third-party servers (except the target storage endpoint).
- The official project website is currently under development and will include guides and full documentation.
About
ate-neva-obst is an open-source project built by AzzTE.
Licensed under the Apache 2.0 License.
Made with passion for developers who want a simple and clean Python SDK for Neva Object Storage.
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 ate_neva_obst-2.0.3.tar.gz.
File metadata
- Download URL: ate_neva_obst-2.0.3.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ec4575c2d2ac10c6cd60bc972dca065477958b9206aef1076723033772889fd
|
|
| MD5 |
d0ebdcf44a0cdd52a51d30e2d3d388a3
|
|
| BLAKE2b-256 |
6b4d6aadf45c5268aa1dbd28f4a87c92f6a76b5b263a51bbcf41a438e016674b
|
File details
Details for the file ate_neva_obst-2.0.3-py3-none-any.whl.
File metadata
- Download URL: ate_neva_obst-2.0.3-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b795c7ad338deb742f3fcac76d393c3657eb9d6f9a914c568d9023407df0a92
|
|
| MD5 |
28537407484fcdf1834ac312ca13a923
|
|
| BLAKE2b-256 |
f1e024fbf9aa6c3190715756aeca78db6055dfbb38845a1b3cfcad902c7dc722
|