Skip to content

Examples#

Index > S3 > Examples

Auto-generated documentation for S3 type annotations stubs module types-aiobotocore-s3.

Client#

Implicit type annotations#

Can be used with types-aioboto3[s3] package installed.

Write your S3 code as usual, type checking and code completion should work out of the box.

# S3Client usage example

from aioboto3.session import Session


session = Session()

async with session.client("s3") as client:  # (1)
    result = await client.abort_multipart_upload()  # (2)
  1. client: S3Client
  2. result: AbortMultipartUploadOutputTypeDef
# ListDirectoryBucketsPaginator usage example

from aioboto3.session import Session


session = Session()

async with session.client("s3") as client:  # (1)
    paginator = client.get_paginator("list_directory_buckets")  # (2)
    async for item in paginator.paginate(...):
        print(item)  # (3)
  1. client: S3Client
  2. paginator: ListDirectoryBucketsPaginator
  3. item: ListDirectoryBucketsOutputTypeDef
# BucketExistsWaiter usage example

from aioboto3.session import Session


session = Session()

async with session.client("s3") as client:  # (1)
    waiter = client.get_waiter("bucket_exists")  # (2)
    await waiter.wait()
  1. client: S3Client
  2. waiter: BucketExistsWaiter

Explicit type annotations#

With types-aioboto3-lite[s3] or a standalone types_aiobotocore_s3 package, you have to explicitly specify client: S3Client type annotation.

All other type annotations are optional, as types should be discovered automatically. However, these type annotations can be helpful in your functions and methods.

# S3Client usage example with type annotations

from aioboto3.session import Session

from types_aiobotocore_s3.client import S3Client
from types_aiobotocore_s3.type_defs import AbortMultipartUploadOutputTypeDef
from types_aiobotocore_s3.type_defs import AbortMultipartUploadRequestRequestTypeDef


session = Session()

client: S3Client
async with session.client("s3") as client:  # (1)
    kwargs: AbortMultipartUploadRequestRequestTypeDef = {...}  # (2)
    result: AbortMultipartUploadOutputTypeDef = await client.abort_multipart_upload(**kwargs)  # (3)
  1. client: S3Client
  2. kwargs: AbortMultipartUploadRequestRequestTypeDef
  3. result: AbortMultipartUploadOutputTypeDef
# ListDirectoryBucketsPaginator usage example with type annotations

from aioboto3.session import Session

from types_aiobotocore_s3.client import S3Client
from types_aiobotocore_s3.paginator import ListDirectoryBucketsPaginator
from types_aiobotocore_s3.type_defs import ListDirectoryBucketsOutputTypeDef


session = Session()

client: S3Client
async with session.client("s3") as client:  # (1)
    paginator: ListDirectoryBucketsPaginator = client.get_paginator("list_directory_buckets")  # (2)
    async for item in paginator.paginate(...):
        item: ListDirectoryBucketsOutputTypeDef
        print(item)  # (3)
  1. client: S3Client
  2. paginator: ListDirectoryBucketsPaginator
  3. item: ListDirectoryBucketsOutputTypeDef
# BucketExistsWaiter usage example with type annotations

from aioboto3.session import Session

from types_aiobotocore_s3.client import S3Client
from types_aiobotocore_s3.waiter import BucketExistsWaiter


session = Session()

async with session.client("s3") as client:  # (1)
    waiter = client.get_waiter("bucket_exists")  # (2)
    await waiter.wait()
  1. client: S3Client
  2. waiter: BucketExistsWaiter

Service Resource#

Implicit type annotations#

Can be used with types-aioboto3[s3] package installed.

# S3ServiceResource usage example

from aioboto3.session import Session


session = Session()

async with session.resource("s3") as resource:  # (1)
    result = resource.Bucket()  # (2)
  1. resource: S3ServiceResource
  2. result:
# ServiceResourceBucketsCollection usage example

from aioboto3.session import Session


session = Session()
resource = session.resource("s3")  # (1)

collection = resource.buckets  # (2)
for item in collection:
    print(item)  # (3)
  1. resource: S3ServiceResource
  2. collection: S3ServiceResource
  3. item: Bucket

Explicit type annotations#

With types-aioboto3-lite[s3] or a standalone types_aiobotocore_s3 package, you have to explicitly specify resource: S3ServiceResource type annotation.

All other type annotations are optional, as types should be discovered automatically. However, these type annotations can be helpful in your functions and methods.

# S3ServiceResource usage example with type annotations

from aioboto3.session import Session

from types_aiobotocore_s3.service_resource import S3ServiceResource
from types_aiobotocore_s3.service_resource import Bucket


session = Session()

resource: S3ServiceResource
async with session.resource("s3") as resource:  # (1)
    result: Bucket = resource.Bucket() # (2)
  1. resource: S3ServiceResource
  2. result:
# ServiceResourceBucketsCollection usage example with type annotations

from aioboto3.session import Session

from types_aiobotocore_s3.service_resource import S3ServiceResource
from types_aiobotocore_s3.service_resource import ServiceResourceBucketsCollection
from types_aiobotocore_s3.service_resource import Bucket


session = Session()

resource: S3ServiceResource
async with session.resource("s3") as resource:  # (1)
    collection: ServiceResourceBucketsCollection = resource.buckets  # (2)
    for item in collection:
        item: Bucket
        print(item)  # (3)
  1. resource: S3ServiceResource
  2. collection: S3ServiceResource
  3. item: Bucket