[GH-ISSUE #2347] Evaluate replacing afero-s3 with direct S3 SDK usage #6647

Closed
opened 2026-04-20 17:14:27 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @tink-bot on GitHub (Mar 3, 2026).
Original GitHub issue: https://github.com/go-vikunja/vikunja/issues/2347

Context

In #2313 we merged a temporary fork of afero-s3 to fix a severe S3 read performance regression (every Read() call was opening a new HTTP connection, resulting in ~320 requests for a 10MB file).

As discussed in that PR, we should evaluate whether to keep using afero-s3 at all, or replace it with direct AWS S3 SDK usage. We don't use many S3 APIs, so the abstraction layer may not be worth the maintenance burden and exposure to upstream regressions like this one.

Tasks

  • Audit current afero-s3 usage in the codebase — which afero.Fs methods do we actually use?
  • Evaluate effort to replace with direct aws-sdk-go (or v2) calls
  • Remove the replace directive in go.mod once upstream merges the fix (https://github.com/fclairamb/afero-s3/pull/938), or proceed with full removal

cc @kolaente @maggch97

Originally created by @tink-bot on GitHub (Mar 3, 2026). Original GitHub issue: https://github.com/go-vikunja/vikunja/issues/2347 ## Context In #2313 we merged a temporary fork of afero-s3 to fix a severe S3 read performance regression (every `Read()` call was opening a new HTTP connection, resulting in ~320 requests for a 10MB file). As discussed in that PR, we should evaluate whether to keep using afero-s3 at all, or replace it with direct AWS S3 SDK usage. We don't use many S3 APIs, so the abstraction layer may not be worth the maintenance burden and exposure to upstream regressions like this one. ## Tasks - [ ] Audit current afero-s3 usage in the codebase — which `afero.Fs` methods do we actually use? - [ ] Evaluate effort to replace with direct `aws-sdk-go` (or v2) calls - [ ] Remove the `replace` directive in `go.mod` once upstream merges the fix (https://github.com/fclairamb/afero-s3/pull/938), or proceed with full removal cc @kolaente @maggch97
Author
Owner

@kolaente commented on GitHub (Mar 3, 2026):

@maggch97 any thoughts?

<!-- gh-comment-id:3990623321 --> @kolaente commented on GitHub (Mar 3, 2026): @maggch97 any thoughts?
Author
Owner

@vikunja-bot-app[bot] commented on GitHub (Mar 20, 2026):

This issue has been fixed in #2418, please check with the next unstable build (should be ready for deployment in ~30min, also on the demo).

<!-- gh-comment-id:4096954913 --> @vikunja-bot-app[bot] commented on GitHub (Mar 20, 2026): This issue has been fixed in #2418, please check with the next unstable build (should be ready for deployment in ~30min, also on [the demo](https://try.vikunja.io)).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#6647