biodm.managers.s3manager module

class S3Manager(app: Api, endpoint_url: str, bucket_name: str, access_key_id: Secret, secret_access_key: Secret, url_expiration: int, pending_expiration: int, region_name: str, file_size_limit: int)

Bases: ApiManager

Manages requests with an S3 storage instance.

abort_multipart_upload(object_name: str, upload_id: str) Dict[str, str]

Multipart upload termination notice

Parameters:
  • object_name (str) – object key

  • upload_id (str) – multipart upload id

Raises:

FailedCreate – Bucket returns an error

Returns:

Bucket response

Return type:

Dict[str, str]

complete_multipart_upload(object_name: str, upload_id: str, parts: List[Dict[str, str]]) Dict[str, str]

Multipart upload Completion notice

Parameters:
  • object_name (str) – object key

  • upload_id (str) – multipart upload id

  • parts (List[Dict[str, str]]) – Part - ETag mapping for all parts

Raises:

FileUploadCompleteError – Bucket returns an error

Returns:

Bucket response

Return type:

Dict[str, str]

create_multipart_upload(object_name: str) Dict[str, str]

Create multipart upload

Parameters:

object_name (str) – object key

Raises:

FailedCreate – When client fails to create multipart upload

Returns:

Multipart upload descriptior, containing ‘UploadId’

Return type:

Dict[str, str]

create_presigned_download_url(object_name: str) str

Generate a presigned URL to share an S3 object

Parameters:

object_name (String) – Object Key

Returns:

Presigned URL as string.

create_upload_part(object_name: str, upload_id: str, part_number: int) str

Create one upload part for a multipart upload

Parameters:
  • object_name (str) – object key

  • upload_id (str) – multipart upload id

  • part_number (int) – part number

Raises:

ManagerError – on error

Returns:

A presigned url for this part

Return type:

str

property endpoint: str

External service endpoint.

list_multipart_parts(object_name: str, upload_id: str, part_marker: int = 0) Dict[str, Any]

List parts of a multipart upload

Parameters:
  • object_name (str) – object key

  • upload_id (str) – multipart upload id

  • part_marker (int, optional) – PartNumberMarker - start of the parts number to return, defaults to 0

Raises:

ManagerError – on errors

Returns:

call result, a dictionary containing a ‘Parts’ key

Return type:

Dict[str, Any]