hunterlan / hunterlan/AzStorage
Application: list containers & blobs with pagination
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Goal
Implement the core "browse" use cases: list containers in an account, and list blobs in a container.
Why
G2 reviews call out Storage Explorer's slow performance on large data sets; loading everything into memory at once is a big part of that. Building pagination in from the start avoids repeating that mistake.
Tasks
- Add
IBlobContainerRepository/IBlobRepositoryports (or similar names) inAzStorage.Applicationwith paged listing methods (page size + continuation token in, page of results + next token out). - Add
ListContainersUseCaseandListBlobsUseCase(support an optional folder-prefix parameter to browse virtual folders). - Implement the ports in
AzStorage.InfrastructureusingBlobServiceClient/BlobContainerClient's built-in paged (AsPages) APIs. - Add unit tests (fake repository) for the use cases and integration tests (Azurite) for the real implementation, including a case with more items than a single page.
Acceptance Criteria
- Listing 1 page of containers/blobs does not require fetching the entire container/account contents.
- Continuation-token-based paging is covered by at least one integration test with 2+ pages.
Depends on
- Domain: model Blob Container and Blob Item
- Infrastructure: implement Azure Blob Storage adapter
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in AzStorage.Application by defining the repository ports and list use cases, then inspect AzStorage.Infrastructure for the Azure Blob Storage adapter using BlobServiceClient and BlobContainerClient.AsPages. Add fake-repository unit tests and Azurite integration tests, including more items than one page. Done means continuation-token paging and optional folder prefixes work without fetching all contents.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp
- Domain
- backend, cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100