Metadata-Version: 2.4
Name: elizaos-plugin-s3-storage
Version: 2.0.0a5
Summary: elizaOS S3 Storage Plugin - AWS S3 and S3-compatible storage integration
Project-URL: Homepage, https://github.com/elizaos/eliza
Project-URL: Documentation, https://elizaos.ai/docs
Project-URL: Repository, https://github.com/elizaos/eliza
Author: elizaOS Contributors
License-Expression: MIT
License-File: LICENSE
Keywords: aws,cloud-storage,elizaos,file-upload,s3,storage
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: File Transfer Protocol (FTP)
Classifier: Topic :: System :: Archiving
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: aiofiles>=25.1.0
Requires-Dist: boto3>=1.35.0
Requires-Dist: botocore>=1.35.0
Requires-Dist: pydantic>=2.10.0
Provides-Extra: dev
Requires-Dist: boto3-stubs[s3]>=1.35.0; extra == 'dev'
Requires-Dist: moto>=5.0.0; extra == 'dev'
Requires-Dist: mypy>=1.14.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest-cov>=6.0.0; extra == 'dev'
Requires-Dist: pytest-xprocess>=1.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.9.0; extra == 'dev'
Description-Content-Type: text/markdown

# elizaOS S3 Storage Plugin (Python)

AWS S3 and S3-compatible storage integration for elizaOS agents.

## Installation

```bash
pip install elizaos-plugin-s3-storage
```

## Usage

```python
from elizaos_plugin_s3_storage import S3StorageClient, S3StorageConfig

# Create configuration
config = S3StorageConfig(
    access_key_id="your-access-key",
    secret_access_key="your-secret-key",
    region="us-east-1",
    bucket="your-bucket",
)

# Create client
async with S3StorageClient(config) as client:
    # Upload a file
    result = await client.upload_file("/path/to/file.txt")
    print(f"Uploaded to: {result.url}")

    # Upload JSON data
    result = await client.upload_json({"key": "value"}, filename="data.json")
    print(f"JSON uploaded to: {result.url}")

    # Generate signed URL
    url = await client.generate_signed_url("path/to/file.txt", expires_in=3600)
    print(f"Signed URL: {url}")
```

## Configuration

Environment variables:

- `AWS_ACCESS_KEY_ID`: AWS access key ID
- `AWS_SECRET_ACCESS_KEY`: AWS secret access key
- `AWS_REGION`: AWS region
- `AWS_S3_BUCKET`: S3 bucket name
- `AWS_S3_UPLOAD_PATH`: Optional upload path prefix
- `AWS_S3_ENDPOINT`: Optional custom S3 endpoint
- `AWS_S3_SSL_ENABLED`: Enable SSL for custom endpoint
- `AWS_S3_FORCE_PATH_STYLE`: Force path-style addressing

## Features

- Upload files and JSON data to S3
- Generate pre-signed URLs
- Support for S3-compatible services (MinIO, DigitalOcean Spaces, etc.)
- Async/await support
- Type-safe with Pydantic models

## License

MIT



