Files
go-omni/storage/s3/upload_test.go

35 lines
1.1 KiB
Go

package s3
import (
"context"
"net/http/httptest"
"strings"
"testing"
"time"
"git.yuntuo.hk/k2safe/go-omni/internal/storagefixture"
"git.yuntuo.hk/k2safe/go-omni/storage/storagetest"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func TestUploadProtocol(t *testing.T) {
server := httptest.NewTLSServer(storagefixture.MultipartHandler())
defer server.Close()
s, err := Open(Config{Endpoint: strings.TrimPrefix(server.URL, "https://"), Region: "us-east-1", Bucket: "testbucket", Secure: true, MaxBytes: 6 << 20, Credentials: credentials.NewStaticV4("fixtureAccess", "fixtureSecret", ""), Transport: server.Client().Transport})
if err != nil {
t.Fatal(err)
}
storagetest.RunUploads(t, s, server.Client())
}
func TestR2UploadSigning(t *testing.T) {
cfg, _ := R2Config(strings.Repeat("a", 32), "testbucket", credentials.NewStaticV4("fixtureAccess", "fixtureSecret", ""))
s, err := Open(cfg)
if err != nil {
t.Fatal(err)
}
r, err := s.PresignPut(context.Background(), "file", 5, "text/plain", time.Minute)
if err != nil || !strings.Contains(r.URL, "/auto/s3/") && !strings.Contains(r.URL, "%2Fauto%2Fs3%2F") {
t.Fatal("R2 upload signing", err)
}
}