feat: complete API-driven projects with infrastructure and business acceptance
This commit is contained in:
34
storage/s3/upload_test.go
Normal file
34
storage/s3/upload_test.go
Normal file
@@ -0,0 +1,34 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user