s3 support

This commit is contained in:
onysd 2026-08-04 23:09:11 +03:00
parent fa5cfaf14d
commit 03f10b66ee
53 changed files with 2796 additions and 102 deletions

View file

@ -44,6 +44,32 @@ func TestLocalFSPutGetRoundTrip(t *testing.T) {
}
}
func TestLocalFSDelete(t *testing.T) {
fs, err := NewLocalFS(t.TempDir())
if err != nil {
t.Fatalf("new local fs: %v", err)
}
ctx := context.Background()
key, err := fs.Put(ctx, []byte("delete me"))
if err != nil {
t.Fatalf("put: %v", err)
}
if _, err := fs.Get(ctx, key); err != nil {
t.Fatalf("get before delete: %v", err)
}
if err := fs.Delete(ctx, key); err != nil {
t.Fatalf("delete: %v", err)
}
if _, err := fs.Get(ctx, key); err == nil {
t.Fatal("expected get after delete to fail")
}
// Deleting an already-absent object must be idempotent, not an error --
// the retention sweep can legitimately retry after a partial failure.
if err := fs.Delete(ctx, key); err != nil {
t.Fatalf("delete already-missing object: %v", err)
}
}
func TestLocalFSPutReaderRoundTrip(t *testing.T) {
fs, err := NewLocalFS(t.TempDir())
if err != nil {