mirror of
https://github.com/langgenius/dify-cloud-kit.git
synced 2026-07-21 00:45:24 -04:00
50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
package factory
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/langgenius/dify-cloud-kit/oss"
|
|
"github.com/langgenius/dify-cloud-kit/oss/aliyun"
|
|
"github.com/langgenius/dify-cloud-kit/oss/azureblob"
|
|
"github.com/langgenius/dify-cloud-kit/oss/gcsblob"
|
|
"github.com/langgenius/dify-cloud-kit/oss/huanweiobs"
|
|
"github.com/langgenius/dify-cloud-kit/oss/local"
|
|
"github.com/langgenius/dify-cloud-kit/oss/s3"
|
|
"github.com/langgenius/dify-cloud-kit/oss/tencentcos"
|
|
)
|
|
|
|
var OSSFactory = map[string]func(oss.OSSArgs) (oss.OSS, error){
|
|
"local": local.NewLocalStorage,
|
|
"local_file": local.NewLocalStorage,
|
|
|
|
"s3": s3.NewS3Storage,
|
|
"aws_s3": s3.NewS3Storage,
|
|
|
|
"azure": azureblob.NewAzureBlobStorage,
|
|
"azure_blob": azureblob.NewAzureBlobStorage,
|
|
|
|
"aliyun": aliyun.NewAliyunOSSStorage,
|
|
"aliyun-oss": aliyun.NewAliyunOSSStorage,
|
|
"aliyun_oss": aliyun.NewAliyunOSSStorage,
|
|
|
|
"tencent": tencentcos.NewTencentCOSStorage,
|
|
"tencent_cos": tencentcos.NewTencentCOSStorage,
|
|
"tencent-cos": tencentcos.NewTencentCOSStorage,
|
|
|
|
"gcs": gcsblob.NewGoogleCloudStorage,
|
|
"google-storage": gcsblob.NewGoogleCloudStorage,
|
|
|
|
"huawei": huanweiobs.NewHuaweiOBSStorage,
|
|
"huawei-obs": huanweiobs.NewHuaweiOBSStorage,
|
|
"huawei_obs": huanweiobs.NewHuaweiOBSStorage,
|
|
}
|
|
|
|
func Load(name string, args oss.OSSArgs) (oss.OSS, error) {
|
|
f, ok := OSSFactory[name]
|
|
if !ok {
|
|
msg := fmt.Sprintf("[ %s ] is not in the provider list", name)
|
|
return nil, oss.ErrProviderNotFound.WithDetail(msg)
|
|
}
|
|
return f(args)
|
|
}
|