Skip to content

Comments

add support for azure blob for inference results#712

Draft
shrek wants to merge 7 commits intoNVIDIA:mainfrom
shrek:add-azure-blob-support
Draft

add support for azure blob for inference results#712
shrek wants to merge 7 commits intoNVIDIA:mainfrom
shrek:add-azure-blob-support

Conversation

@shrek
Copy link
Collaborator

@shrek shrek commented Feb 24, 2026

Earth2Studio Pull Request

Description

This PR adds azure blob support for inference results.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.
  • The CHANGELOG.md is up to date with these changes.
  • An issue is linked to this pull request.
  • Assess and address Greptile feedback (AI code review bot for guidance; use discretion, addressing all feedback is not required).

Dependencies

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 24, 2026

Greptile Summary

This PR adds Azure Blob Storage support as an alternative to AWS S3 for storing inference results. The implementation includes SAS token generation for Azure signed URLs, comprehensive documentation, and configuration options for both storage providers.

Major Changes:

  • Extended MSCObjectStorage class to support both S3 and Azure Blob Storage
  • Added Azure-specific configuration parameters (azure_connection_string, azure_account_name, azure_account_key, azure_container_name)
  • Implemented Azure SAS URL generation for secure, time-limited access
  • Updated CPU worker to handle both storage types with appropriate credentials
  • Added azure-storage-blob and multi-storage-client[azure-storage-blob] dependencies
  • Created comprehensive Azure setup documentation

Critical Issues Found:

  • Import Error: cpu_worker.py line 561 uses incorrect import path earth2studio_api_server.object_storage instead of api_server.object_storage, which will cause import failures at runtime
  • Duplicated Code: object_storage.py lines 302-322 duplicate the S3 Transfer Acceleration and CloudFront configuration logic that already exists at lines 246-265, which will overwrite Azure-specific settings and break Azure storage initialization

Confidence Score: 1/5

  • This PR has critical bugs that will cause runtime failures and must be fixed before merging
  • Two critical logic errors were found: (1) incorrect import path in cpu_worker.py will cause ModuleNotFoundError, and (2) duplicated S3 configuration code in object_storage.py will overwrite Azure settings, breaking Azure storage functionality entirely. Both issues will cause immediate failures when attempting to use the new Azure storage feature.
  • Pay close attention to serve/inferenceserver/api_server/cpu_worker.py (import error) and serve/inferenceserver/api_server/object_storage.py (duplicated code block)

Important Files Changed

Filename Overview
serve/inferenceserver/api_server/object_storage.py Added Azure Blob Storage support with SAS URL generation. Critical issue: duplicated S3 configuration code (lines 302-322) that will break Azure storage initialization.
serve/inferenceserver/api_server/cpu_worker.py Updated to handle both S3 and Azure storage types. Critical issue: incorrect import path (earth2studio_api_server instead of api_server) will cause import failure.
serve/inferenceserver/api_server/config.py Added Azure configuration parameters and environment variable overrides. Clean implementation with proper type hints.
serve/inferenceserver/requirements.txt Added Azure Blob Storage dependencies with multi-storage-client Azure support.
pyproject.toml Added object storage dependencies to serve extras group.

Last reviewed commit: df42f31

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 24, 2026

Additional Comments (1)

serve/inferenceserver/api_server/object_storage.py
duplicated code block - this S3 Transfer Acceleration and CloudFront configuration logic appears twice (once inside the if storage_type == "s3" block at lines 246-265, and again here at lines 302-322), and should be removed from here

        # Import multi-storage-client

@shrek shrek changed the title [FEA] serve - add support for azure blob for inference results add support for azure blob for inference results in serve Feb 24, 2026
@shrek shrek marked this pull request as draft February 24, 2026 02:38
@shrek shrek changed the title add support for azure blob for inference results in serve add support for azure blob for inference results Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants