Add S3-compatible storage backend

This commit is contained in:
2026-05-31 17:11:53 +00:00
parent 052aa8a64a
commit 14fa9c8000
27 changed files with 1334 additions and 45 deletions

View File

@@ -0,0 +1,39 @@
package s3
import (
"context"
"os"
"strconv"
"testing"
)
func TestIntegrationS3BackendHasAny(t *testing.T) {
endpoint := os.Getenv("DISTRIBUTOR_TEST_S3_ENDPOINT")
bucket := os.Getenv("DISTRIBUTOR_TEST_S3_BUCKET")
if endpoint == "" || bucket == "" {
t.Skip("DISTRIBUTOR_TEST_S3_ENDPOINT and DISTRIBUTOR_TEST_S3_BUCKET are not set")
}
forcePathStyle := true
if raw := os.Getenv("DISTRIBUTOR_TEST_S3_FORCE_PATH_STYLE"); raw != "" {
parsed, err := strconv.ParseBool(raw)
if err != nil {
t.Fatalf("parse DISTRIBUTOR_TEST_S3_FORCE_PATH_STYLE: %v", err)
}
forcePathStyle = parsed
}
backend, err := New(context.Background(), Options{
Endpoint: endpoint,
Bucket: bucket,
Prefix: os.Getenv("DISTRIBUTOR_TEST_S3_PREFIX"),
Region: os.Getenv("DISTRIBUTOR_TEST_S3_REGION"),
ForcePathStyle: forcePathStyle,
AccessKeyID: os.Getenv("DISTRIBUTOR_TEST_S3_ACCESS_KEY_ID"),
SecretAccessKey: os.Getenv("DISTRIBUTOR_TEST_S3_SECRET_ACCESS_KEY"),
})
if err != nil {
t.Fatalf("New() error = %v", err)
}
if _, err := backend.HasAny(context.Background(), ""); err != nil {
t.Fatalf("HasAny(root) error = %v", err)
}
}