obstore is a Python library providing a simple, high-throughput interface for various object storage services like Amazon S3, Google Cloud Storage, Azure Blob Storage, and S3-compliant APIs. It features both synchronous and asynchronous APIs, streaming downloads/uploads, and automatic multipart uploads for large files, powered by a Rust backend for performance. The current version is 0.9.2, with a frequent release cadence, often introducing minor updates and fixes.
pip install obstoreVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to initialize an in-memory object store and perform basic synchronous `put` and `get` operations. Note that operations like `put` and `get` are top-level functions within the `obstore` module, taking the store instance as their first argument. Asynchronous counterparts (e.g., `put_async`, `get_async`) are also available.
Upgrade Python to 3.10 or newer.
Refactor S3 store construction to use explicit credential providers or environment variable configuration instead of `from_session`.
Review all path inputs to `obstore` functions and ensure they are properly formed (e.g., not already percent-encoded if they contain special characters).
Update `AzureStore` constructor calls to use `container_name='my-container'` instead of `container='my-container'`.
Always call object storage operations as `obstore.<function_name>(store_instance, ...)`.
If using `return_arrow=True`, ensure `pip install obstore[arrow]` or `pip install arro3-core` is run.
Install the 'obstore' library using pip: `pip install obstore`
Explicitly pass the correct `region` parameter when initializing `S3Store`, or ensure the `AWS_REGION` environment variable is correctly set. For example: `store = S3Store("your-bucket-name", region="us-west-2")`Use the correct capitalization for `PutMode` values (e.g., `mode="Create"` or `mode="Overwrite"`). Refer to the `PutMode` documentation for supported values. For example: `await obs.put_async(store, key, buf, mode="Create")`
Provide valid authentication credentials via environment variables (e.g., `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`), configuration parameters during store initialization, or by setting up a custom credential provider.
Verify that the `path` argument provided to operations like `get`, `head`, or `delete` correctly points to an existing object within the storage bucket.