feat: support Casdoor storage provider (#3147)

* feat: support Casdoor storage provider

* fix: fix code format and nil pointer error

* feat: change cert if statement
This commit is contained in:
DacongDA
2024-08-27 23:54:03 +08:00
committed by GitHub
parent 62bb257c6d
commit c08f2b1f3f
8 changed files with 87 additions and 16 deletions

View File

@ -117,7 +117,18 @@ func GetUploadFileUrl(provider *Provider, fullFilePath string, hasTimestamp bool
func getStorageProvider(provider *Provider, lang string) (oss.StorageInterface, error) {
endpoint := getProviderEndpoint(provider)
storageProvider, err := storage.GetStorageProvider(provider.Type, provider.ClientId, provider.ClientSecret, provider.RegionId, provider.Bucket, endpoint)
certificate := ""
if provider.Category == "Storage" && provider.Type == "Casdoor" {
cert, err := GetCert(util.GetId(provider.Owner, provider.Cert))
if err != nil {
return nil, err
}
if cert == nil {
return nil, fmt.Errorf("no cert for %s", provider.Cert)
}
certificate = cert.Certificate
}
storageProvider, err := storage.GetStorageProvider(provider.Type, provider.ClientId, provider.ClientSecret, provider.RegionId, provider.Bucket, endpoint, certificate, provider.Content)
if err != nil {
return nil, err
}
@ -145,11 +156,15 @@ func uploadFile(provider *Provider, fullFilePath string, fileBuffer *bytes.Buffe
fileUrl, objectKey := GetUploadFileUrl(provider, fullFilePath, true)
objectKeyRefined := refineObjectKey(provider, objectKey)
_, err = storageProvider.Put(objectKeyRefined, fileBuffer)
object, err := storageProvider.Put(objectKeyRefined, fileBuffer)
if err != nil {
return "", "", err
}
if provider.Type == "Casdoor" {
fileUrl = object.Path
}
return fileUrl, objectKey, nil
}