hunterlan / hunterlan/AzStorage

Application: list containers & blobs with pagination

Open
#6 0 comments 0 reactions 0 assignees View on GitHub

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/IBlobRepository ports (or similar names) in AzStorage.Application with paged listing methods (page size + continuation token in, page of results + next token out).
  • Add ListContainersUseCase and ListBlobsUseCase (support an optional folder-prefix parameter to browse virtual folders).
  • Implement the ports in AzStorage.Infrastructure using BlobServiceClient/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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.