hunterlan / hunterlan/AzStorage

Application: upload, download and delete blob use cases

Open
#8 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 file-transfer operations every storage browser needs.

Why

Upload/download/delete is the minimum viable "does something useful" slice of the app, and progress/cancellation support is something users frequently complain is clunky or missing in Storage Explorer.

Tasks

  • Add ports for UploadBlobAsync, DownloadBlobAsync, DeleteBlobAsync (and container delete) in AzStorage.Application.
  • Add use cases wrapping these operations, accepting an IProgress<long>-style callback and a CancellationToken so a future UI can show progress bars and let users cancel.
  • Implement in AzStorage.Infrastructure using the Azure SDK's built-in transfer/progress APIs.
  • Add integration tests (Azurite) covering: upload then download round-trip (content matches), delete removes the blob, cancellation actually stops an in-progress transfer.

Acceptance Criteria

  • Round-trip upload/download test verifies byte-for-byte content equality.
  • Cancelling an upload/download mid-transfer is verified by a test (e.g. using a CancellationTokenSource with a short delay).

Depends on

  • Application: list containers & blobs with pagination

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 the AzStorage.Application and AzStorage.Infrastructure projects, then review the Azure SDK transfer and progress APIs. Use Azurite integration tests as the starting point and cover upload/download byte equality, blob deletion, and cancellation during an in-progress transfer. The work is done when the listed ports, use cases, infrastructure implementations, and acceptance tests are complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp
Domain
backend, cloud, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.