Skip to content

Conversation

@ikreymer
Copy link
Member

@ikreymer ikreymer commented Dec 28, 2025

Extends work in #547 adds Upload via @aws-sdk/lib-storage library:

  • Replaces minio client with official aws s3 client
  • Uses @aws-sdk/lib-storage for multi-part upload support

Testing:

@socket-security
Copy link

socket-security bot commented Dec 28, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​types/​get-folder-size@​3.0.4951007077100
Updatednpm/​sax@​1.4.1 ⏵ 1.3.0100 +110010081 -6100
Updatednpm/​get-folder-size@​4.0.0 ⏵ 5.0.0100100100 +182100
Addednpm/​@​aws-sdk/​lib-storage@​3.964.0991008598100
Addednpm/​@​aws-sdk/​client-s3@​3.964.09810010098100

View full report

@ikreymer
Copy link
Member Author

@mguella @wvengen @HeliosLHC can you test to see if this implementation meets your needs and works with the different S3 providers that you were using, and hopefully addresses the issues in #479 also (if its still relevant)?
At this point, it makes sense to move away from minio client libraries, given the minio is no longer being maintained.

@ikreymer
Copy link
Member Author

ikreymer commented Dec 31, 2025

Tested latest changes with VersityGW, RustFS and SeaweedFS, Garage and existing Minio.

async downloadFile(srcFilename: string, destFilename: string) {
let count = 0;
logger.debug("Downloading profile", { srcFilename }, "storage");
while (true) {
Copy link
Member Author

Choose a reason for hiding this comment

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

Retries handled by the S3Client itself, with maxAttempts set in constructor

@ikreymer ikreymer requested a review from tw4l January 2, 2026 04:06
tw4l added 2 commits January 7, 2026 14:29
This resolves an issue where large multi-part uploads weren't
working with local Minio.

Bumps the version of client-s3 and lib-storage to ensure we're on
a version that supports requestChecksumCalculation.
@tw4l
Copy link
Member

tw4l commented Jan 8, 2026

Tested locally and on dev with large crawls. After adding requestChecksumCalculation: "WHEN_REQUIRED" to S3 client config in 9cae290, appears to be working well. The AWS s3 client library authors seem uninterested in preventing breaking changes with other s3-compatible providers so there is a chance that we could have future issues like that one where new AWS features introduce breaking changes, but after looking at the options it still seems like the best library available to us.

@ikreymer
Copy link
Member Author

ikreymer commented Jan 8, 2026

Tested locally and on dev with large crawls. After adding requestChecksumCalculation: "WHEN_REQUIRED" to S3 client config in 9cae290, appears to be working well. The AWS s3 client library authors seem uninterested in preventing breaking changes with other s3-compatible providers so there is a chance that we could have future issues like that one where new AWS features introduce breaking changes, but after looking at the options it still seems like the best library available to us.

Agreed! It seems given that most S3-provider try to match AWS compatibility, at least there is a higher chance of things being compatible, than with existing Minio client, given where Minio is at this point.

@ikreymer ikreymer merged commit 5cb237d into main Jan 8, 2026
6 checks passed
@ikreymer ikreymer deleted the replace-minio-client-with-aws-sdk branch January 8, 2026 20:29
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.

4 participants