Skip to content

Expose retries - #143

Merged
aerimagne merged 4 commits into
mainfrom
expose-retries
May 29, 2026
Merged

Expose retries#143
aerimagne merged 4 commits into
mainfrom
expose-retries

Conversation

@aerimagne

Copy link
Copy Markdown
Collaborator
  • New RetryOptions for storage configs
  • For SDK based downloads the options are forwarded
  • For axios-based URL download a new UrlTransferClient class added that implements exponential backoff

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR exposes retry configuration across object storage packages and adds retry-capable URL transfers for backend client operations.

Changes:

  • Adds shared RetryOptions/StorageOptions and a new UrlTransferClient with exponential backoff.
  • Wires retry options into Azure, S3/Minio, and Google server/client bindings where applicable.
  • Updates lockstep package versions to 3.1.0.

Reviewed changes

Copilot reviewed 35 out of 36 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
storage/core/src/common/Interfaces.ts Defines retry/storage option interfaces.
storage/core/src/server/internal/UrlTransferClient.ts Adds retry-capable axios URL upload/download client.
storage/core/src/server/internal/Helpers.ts Removes old URL transfer helpers and adjusts stream buffering.
storage/core/src/server/internal/index.ts Exports UrlTransferClient.
storage/core/src/client/ClientStorage.ts Formatting-only overload update.
storage/azure/src/server/wrappers/BlobServiceClientWrapperFactory.ts Adds Azure Blob client factory with retry pipeline options.
storage/azure/src/server/AzureServerStorageBindings.ts Uses the new Blob service factory.
storage/azure/src/server/AzureServerStorage.ts Extends config with storage options.
storage/azure/src/server/wrappers/index.ts Exports the new Azure factory.
storage/azure/src/common/Types.ts Adds Azure client config DI token.
storage/s3/src/common/internal/Helpers.ts Maps retry options to AWS S3 client attempts.
storage/s3/src/server/wrappers/S3ClientWrapperFactory.ts Forwards retry options to S3 clients.
storage/s3/src/server/S3ServerStorageBindings.ts Lazily creates S3/STS clients from registered config.
storage/s3/src/server/S3ServerStorage.ts Extends S3 server config with storage options.
storage/s3/src/common/Types.ts Adds S3 client config DI token.
storage/s3/src/client/S3ClientStorageBindings.ts Registers retry-aware S3 wrapper and URL transfer client.
storage/s3/src/client/S3ClientStorage.ts Uses UrlTransferClient for URL transfers.
storage/s3/src/client/internal/Helpers.ts Routes S3 URL uploads through UrlTransferClient.
storage/minio/src/client/MinioClientStorageBindings.ts Passes URL transfer client into Minio storage.
storage/minio/src/client/MinioClientStorage.ts Uses injected URL transfer client.
storage/minio/src/client/internal/Helpers.ts Routes Minio URL uploads through UrlTransferClient.
storage/google/src/server/wrappers/StorageWrapperFactory.ts Applies retry options to default Google Storage client.
storage/google/src/server/wrappers/GoogleStorageConfig.ts Extends Google config with storage options.
storage/google/src/server/GoogleServerStorageBindings.ts Injects retry options into Google wrapper factory.
storage/google/src/common/Types.ts Adds Google client config DI token.
storage/google/src/client/GoogleClientStorageBindings.ts Registers Google client retry config and URL transfer client.
storage/google/src/client/GoogleClientStorage.ts Uses UrlTransferClient for URL transfers.
storage/core/package.json Bumps package version.
storage/azure/package.json Bumps package version.
storage/s3/package.json Bumps package version.
storage/minio/package.json Bumps package version.
storage/google/package.json Bumps package version.
storage/oss/package.json Bumps package version.
cloud-agnostic/core/package.json Bumps package version.
common/config/rush/version-policies.json Updates lockstep version policy.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread storage/core/src/server/internal/UrlTransferClient.ts Outdated
Comment thread storage/core/src/server/internal/UrlTransferClient.ts Outdated
Comment thread storage/google/src/client/GoogleClientStorageBindings.ts
Comment thread storage/azure/src/common/Types.ts Outdated
config: Symbol.for("Types.AzureServer.Config"),
},
AzureClient: {
config: Symbol.for("Types.AzureClient.Config"),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is it used anywhere?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Removed

@aerimagne
aerimagne merged commit 3466185 into main May 29, 2026
6 checks passed
@aerimagne
aerimagne deleted the expose-retries branch May 29, 2026 10:00
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.

3 participants