Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions servicex/minio_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
from hashlib import sha1
from pathlib import Path
from typing import List
from tenacity import retry, stop_after_attempt, wait_random_exponential

from miniopy_async import Minio

Expand Down Expand Up @@ -69,6 +70,8 @@ def for_transform(cls, transform: TransformStatus):
bucket=transform.request_id,
)

@retry(stop=stop_after_attempt(3), wait=wait_random_exponential(max=60),
reraise=True)
async def list_bucket(self) -> List[ResultFile]:
objects = await self.minio.list_objects(self.bucket)
return [
Expand All @@ -80,6 +83,8 @@ async def list_bucket(self) -> List[ResultFile]:
for obj in objects if not obj.is_dir
]

@retry(stop=stop_after_attempt(3), wait=wait_random_exponential(max=60),
reraise=True)
async def download_file(
self, object_name: str, local_dir: str, shorten_filename: bool = False
) -> Path:
Expand All @@ -98,6 +103,8 @@ async def download_file(
)
return path.resolve()

@retry(stop=stop_after_attempt(3), wait=wait_random_exponential(max=60),
reraise=True)
async def get_signed_url(self, object_name: str) -> str:
return await self.minio.get_presigned_url(
bucket_name=self.bucket, object_name=object_name, method="GET"
Expand Down