TR
Implement Azure Blob Store
TraceMachina/nativelink#1554

Description

This PR implements the Azure Blob Store implementation and closely aligns with the AWS S3 implementation. This utilizes the azure_sdk libraries (azure_core, azure_storage, and azure_storage_blobs). The libraries are still unofficial and being developed, so we should be mindful of any breaking changes in the future.

Apart from that, I started my development by first creating a POC: https://gist.github.com/amankrx/45e7d2a6ed935aa13dda0318681af2ad This POC tests the get and upload blobs with all the default features disabled for Azure SDK. This creates a custom HttpClient with manually signing the requests to perform the transactions.

Fixes #1542 /claim #1542

Type of change

Please delete options that aren’t relevant.

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

How Has This Been Tested?

I tested it locally using the bazel test command with the azure_blob_backend.json5 file, configured to use the actual blob storage. To test this locally, you should set the environment variable AZURE_STORAGE_KEY as the access key. Additionally, I created a test suite to cover both individual happy paths and error scenarios.

Checklist

  • Updated documentation if needed
  • Tests added/amended
  • Local testing completed
  • bazel test //... passes locally
  • PR is contained in a single commit, using git amend see some docs

This change is Reviewable

Claim

Total prize pool $2,000
Total paid $0
Status Pending
Submitted December 26, 2024
Last updated December 26, 2024

Contributors

AM

Aman Kumar

@amankrx

100%

Sponsors

TR

TraceMachina

@TraceMachina

$2,000