初始化框架
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"code.yun.ink/pkg/storagex"
|
||||
"code.yun.ink/pkg/storagex/aliyun"
|
||||
"code.yun.ink/pkg/storagex/aws"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 在应用启动时注册所有支持的服务商
|
||||
storagex.Register("aliyun", &aliyun.AliyunFactory{})
|
||||
storagex.Register("aws", &aws.S3Factory{})
|
||||
// storagex.Register("tencent", &tencent.COSFactory{})
|
||||
}
|
||||
|
||||
func main() {
|
||||
// 场景 1: 使用阿里云账号 A 上传
|
||||
cfgAli := storagex.Config{
|
||||
Provider: "aliyun",
|
||||
AccountID: "user_123", // 指定账号
|
||||
Options: map[string]string{
|
||||
"access_key": "LTAIxxxx",
|
||||
"secret_key": "secretxxxx",
|
||||
"bucket": "my-app-assets",
|
||||
"endpoint": "oss-cn-hangzhou.aliyuncs.com",
|
||||
},
|
||||
}
|
||||
|
||||
// 获取上传通道 (自动处理单例复用)
|
||||
uploader, err := storagex.GetUploader("aliyun", "user_123", cfgAli)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// 执行上传
|
||||
result, err := uploader.PutObject(context.Background(), "images/test.png", strings.NewReader("file content"))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Printf("上传成功: %s\n", result.URL)
|
||||
|
||||
// 场景 2: 使用 AWS 账号 B 上传
|
||||
// cfgAws := storagex.Config{
|
||||
// Provider: "aws",
|
||||
// AccountID: "finance_dept",
|
||||
// Options: map[string]string{
|
||||
// "region": "ap-northeast-1",
|
||||
// "bucket": "finance-bucket",
|
||||
// // AK/SK...
|
||||
// },
|
||||
// }
|
||||
|
||||
// 注意:这里会创建一个新的 S3 客户端,与阿里云互不干扰
|
||||
// awsUploader, _ := storagex.GetUploader("aws", "finance_dept", cfgAws)
|
||||
// awsUploader.Upload(...)
|
||||
}
|
||||
Reference in New Issue
Block a user