feat: add independent platform modules and multi-provider storage
This commit is contained in:
31
storage/oss/oss_test.go
Normal file
31
storage/oss/oss_test.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package oss
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.yuntuo.hk/k2safe/go-omni/internal/storagefixture"
|
||||
"git.yuntuo.hk/k2safe/go-omni/storage/storagetest"
|
||||
sdk "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
|
||||
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestSDKProtocolContract(t *testing.T) {
|
||||
server := httptest.NewTLSServer(storagefixture.Handler())
|
||||
defer server.Close()
|
||||
cfg := sdk.LoadDefaultConfig().WithRegion("cn-hangzhou").WithEndpoint(server.URL).WithUsePathStyle(true).WithCredentialsProvider(credentials.NewStaticCredentialsProvider("fixtureAccess", "fixtureSecret")).WithHttpClient(server.Client())
|
||||
store, err := New(sdk.NewClient(cfg), "testbucket", 64)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
storagetest.Run(t, store)
|
||||
u, err := store.PresignGet(context.Background(), "a/file.txt", time.Minute)
|
||||
if err != nil || u.Query().Get("x-oss-signature") == "" || !strings.Contains(u.Path, "a/file.txt") {
|
||||
t.Fatal("invalid signed URL", err)
|
||||
}
|
||||
if _, err = store.PresignGet(context.Background(), "a", 2*time.Hour); err == nil {
|
||||
t.Fatal("TTL accepted")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user