praval.storage.providers.s3_provider

S3 object storage provider for Praval framework

Provides object storage capabilities with S3-compatible backends including AWS S3, MinIO, and other S3-compatible services.

Classes

S3Provider(name, config)

S3-compatible object storage provider.

class praval.storage.providers.s3_provider.S3Provider(name, config)[source]

Bases: BaseStorageProvider

S3-compatible object storage provider.

Features: - Object upload, download, and deletion - Bucket management - Presigned URLs for secure access - Metadata and tagging support - Multipart uploads for large files - Lifecycle management - Cross-region replication support

Parameters:
  • name (str)

  • config (Dict[str, Any])

async connect()[source]

Establish connection to S3.

Return type:

bool

async disconnect()[source]

Close S3 connection.

async store(resource, data, **kwargs)[source]

Store object in S3.

Parameters:
  • resource (str) – S3 object key

  • data (Any) – Data to store (bytes, string, file-like object, or dict/list for JSON)

  • **kwargs – S3 parameters (content_type, metadata, acl, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async retrieve(resource, **kwargs)[source]

Retrieve object from S3.

Parameters:
  • resource (str) – S3 object key

  • **kwargs – Retrieval parameters (range, decode_json, etc.)

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async query(resource, query, **kwargs)[source]

Execute S3 operations or list objects.

Parameters:
  • resource (str) – Prefix or specific key

  • query (Union[str, Dict]) – Query type (“list”, “search”, “metadata”, etc.)

  • **kwargs – Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async delete(resource, **kwargs)[source]

Delete object(s) from S3.

Parameters:
  • resource (str) – Object key or prefix

  • **kwargs – Delete parameters (recursive, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async list_resources(prefix='', **kwargs)[source]

List objects in S3 bucket.

Return type:

StorageResult

Parameters:

prefix (str)