vikunja/pkg/files
maggch b065c62007 feat: replace afero-s3 with minimal S3 afero.Fs implementation
Replace the third-party afero-s3 library (and its temporary fork) with
a minimal in-tree afero.Fs implementation (~200 lines) that only supports
the three S3 operations Vikunja actually uses: Open (GetObject), Remove
(DeleteObject), and Stat (HeadObject).

The s3File implementation lazily opens a GetObject stream on first Read
and supports Seek by closing and re-opening the stream from the new offset,
matching the behavior of the fixed afero-s3 fork.

All other afero.Fs/File methods return ErrS3NotSupported since they are
never called in the S3 code path (writes already use direct PutObject).

This removes the fclairamb/afero-s3 dependency and the temporary replace
directive in go.mod entirely.

Closes #2347

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 10:59:44 +01:00
..
db.go feat: register Vikunja tables with db package at init 2026-03-04 15:37:54 +01:00
diagnostics_unix.go feat(doctor): add user namespace detection and improved storage diagnostics (#2180) 2026-02-01 11:57:35 +01:00
diagnostics_windows.go feat(doctor): add user namespace detection and improved storage diagnostics (#2180) 2026-02-01 11:57:35 +01:00
dump.go fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
error.go fix(attachments): extend upload file size to form data (#1577) 2025-09-30 22:23:07 +00:00
filehandling.go feat: replace afero-s3 with minimal S3 afero.Fs implementation 2026-03-20 10:59:44 +01:00
files.go fix: remove transaction control from File.Delete to prevent premature commit/rollback 2026-02-25 11:03:02 +01:00
files_test.go fix: detect and store mime type when creating file attachments 2026-02-22 00:00:11 +01:00
main_test.go feat: move to slog for logging 2025-07-21 18:15:39 +02:00
repair.go feat(cli): reorganize repair commands under unified 'vikunja repair' parent (#2300) 2026-02-25 11:50:09 +00:00
s3_test.go fix(backgrounds): stream unsplash download to temp file instead of memory 2026-02-08 15:31:25 +01:00
s3fs.go feat: replace afero-s3 with minimal S3 afero.Fs implementation 2026-03-20 10:59:44 +01:00