mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
1d37242a8b
- Update Backend.Put method signature in storage.go to return (PutResult, error). - Adjust all backend implementations (local, oss, s3, webdav) to return a PutResult enclosing Key and Bucket. - Refactor storeUploadFile in upload routers.go to extract key/bucket from PutResult, eliminating manual config bucket lookups. - Remove the unused cfgBucket helper from storage_ops.go. - Adjust storage_migration_task.go and tests to accommodate the updated method signature.
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package storage
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"io"
|
|
"testing"
|
|
)
|
|
|
|
func TestLocalBackendRoundTrip(t *testing.T) {
|
|
backend, err := newLocalBackend(LocalConfig{Root: t.TempDir()})
|
|
if err != nil {
|
|
t.Fatalf("newLocalBackend() returned error: %v", err)
|
|
}
|
|
ctx := context.Background()
|
|
const key = "uploads/2026/06/13/test.txt"
|
|
const content = "wavelet storage"
|
|
|
|
storedResult, err := backend.Put(ctx, key, bytes.NewBufferString(content), int64(len(content)), "text/plain")
|
|
if err != nil {
|
|
t.Fatalf("Put(%q) returned error: %v", key, err)
|
|
}
|
|
if storedResult.Key != key {
|
|
t.Errorf("Put(%q) key = %q, want %q", key, storedResult.Key, key)
|
|
}
|
|
|
|
object, err := backend.Get(ctx, key)
|
|
if err != nil {
|
|
t.Fatalf("Get(%q) returned error: %v", key, err)
|
|
}
|
|
got, err := io.ReadAll(object.Body)
|
|
if err != nil {
|
|
t.Fatalf("ReadAll(Get(%q)) returned error: %v", key, err)
|
|
}
|
|
if err := object.Body.Close(); err != nil {
|
|
t.Fatalf("Close(Get(%q)) returned error: %v", key, err)
|
|
}
|
|
if string(got) != content {
|
|
t.Errorf("Get(%q) content = %q, want %q", key, got, content)
|
|
}
|
|
|
|
if err := backend.Delete(ctx, key); err != nil {
|
|
t.Fatalf("Delete(%q) returned error: %v", key, err)
|
|
}
|
|
if _, err := backend.Get(ctx, key); err == nil {
|
|
t.Errorf("Get(%q) after Delete() returned nil error", key)
|
|
}
|
|
}
|