Skip to content

Commit

Permalink
Fix fetching zero-size blobs in S3 bucket provider (#2394)
Browse files Browse the repository at this point in the history
* Fix fetching zero-size blobs in S3 bucket provider

* Add changelog
  • Loading branch information
romasku authored Oct 25, 2021
1 parent b8787bb commit 238bd51
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.D/2394.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix fetching zero-size blob from S3 compatible bucket providers.
8 changes: 5 additions & 3 deletions neuro-sdk/src/neuro_sdk/buckets.py
Original file line number Diff line number Diff line change
Expand Up @@ -513,11 +513,13 @@ async def _upload_chunk() -> None:
@asyncgeneratorcontextmanager
async def fetch_blob(self, key: str, offset: int = 0) -> AsyncIterator[bytes]:
response = await self._client.get_object(
Bucket=self._bucket_name, Key=key, Range=f"bytes={offset}-"
Bucket=self._bucket_name,
Key=key,
Range=f"bytes={offset}-" if offset else "",
)
async with response["Body"] as stream:
async for chunk in stream.iter_chunks():
yield chunk[0]
async for chunk in stream.iter_any():
yield chunk

async def delete_blob(self, key: str) -> None:
await self._client.delete_object(Bucket=self._bucket_name, Key=key)
Expand Down

0 comments on commit 238bd51

Please sign in to comment.