Metadata-Version: 2.1
Name: sqs-extended-client
Version: 0.0.9
Summary: AWS SQS extended client functionality from amazon-sqs-java-extended-client-lib
Home-page: https://github.com/QuiNovas/sqs-extended-client
Author: Joseph Wortmann
Author-email: jwortmann@quinovas.com
License: Apache 2.0
Description: # sqs-extended-client
        
        ### Implements the functionality of [amazon-sqs-java-extended-client-lib](https://github.com/awslabs/amazon-sqs-java-extended-client-lib) in Python
        
        ## Installation
        ```
        pip install sqs-extended-client
        ```
        
        
        ## Overview
        sqs-extended-client allows for sending large messages through SQS via S3. This is the same mechanism that the Amazon library
        [amazon-sqs-java-extended-client-lib](https://github.com/awslabs/amazon-sqs-java-extended-client-lib) provides. This library is
        interoperable with that library.
        
        To do this, this library automatically extends the normal boto3 SQS client and Queue resource classes upon import using the [botoinator](https://github.com/QuiNovas/botoinator) library. This allows for further extension or decoration if desired.
        
        # Usage
        
        ### Note
        The s3 bucket must already exist prior to usage, and be accessible by whatever credentials you have available
        
        
        ### Enabling support for large payloads (>256Kb)
        
        ```python
        import boto3
        import sqs_extended_client
        
        # Low level client
        sqs = boto3.client('sqs')
        sqs.large_payload_support = 'my-bucket-name'
        
        # boto resource
        resource = boto3.resource('sqs')
        queue = resource.Queue('queue-url')
        
        # Or
        queue = resource.create_queue(QueueName='queue-name')
        
        queue.large_payload_support = 'my-bucket-name'
        ```
        Arguments:
        * large_payload_support -- the S3 bucket name that will store large messages.
        
        ### Enabling support for large payloads (>64K)
        ```python
        import boto3
        import sqs_extended_client
        
        # Low level client
        sqs = boto3.client('sqs')
        sqs.large_payload_support = 'my-bucket-name'
        sqs.message_size_threshold = 65536
        
        # boto resource
        resource = boto3.resource('sqs')
        queue = resource.Queue('queue-url')
        
        # Or
        queue = resource.create_queue(QueueName='queue-name')
        
        queue.large_payload_support = 'my-bucket-name'
        queue.message_size_threshold = 65536
        ```
        Arguments:
        * message_size_threshold -- the threshold for storing the message in the large messages bucket. Cannot be less than 0 or greater than 262144
        
        ### Enabling support for large payloads for all messages
        ```python
        import boto3
        import sqs_extended_client
        
        # Low level client
        sqs = boto3.client('sqs')
        sqs.large_payload_support = 'my-bucket-name'
        sqs.always_through_s3 = True
        
        # boto resource
        resource = boto3.resource('sqs')
        queue = resource.Queue('queue-url')
        
        # Or
        queue = resource.create_queue(QueueName='queue-name')
        
        queue.large_payload_support = 'my-bucket-name'
        queue.always_through_s3 = True
        ```
        Arguments:
        * always_through_s3 -- if True, then all messages will be serialized to S3.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
