mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 18:54:03 +08:00
Add DeleteFile().
This commit is contained in:
parent
495b64995f
commit
518c3f9f69
@ -65,12 +65,31 @@ func (c *ApiController) AddResource() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *ApiController) DeleteResource() {
|
func (c *ApiController) DeleteResource() {
|
||||||
|
userId, ok := c.RequireSignedIn()
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var resource object.Resource
|
var resource object.Resource
|
||||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &resource)
|
err := json.Unmarshal(c.Ctx.Input.RequestBody, &resource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
user := object.GetUser(userId)
|
||||||
|
application := object.GetApplicationByUser(user)
|
||||||
|
provider := application.GetStorageProvider()
|
||||||
|
if provider == nil {
|
||||||
|
c.ResponseError("No storage provider is found")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = object.DeleteFile(provider, resource.ObjectKey)
|
||||||
|
if err != nil {
|
||||||
|
c.ResponseError(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
c.Data["json"] = wrapActionResponse(object.DeleteResource(&resource))
|
c.Data["json"] = wrapActionResponse(object.DeleteResource(&resource))
|
||||||
c.ServeJSON()
|
c.ServeJSON()
|
||||||
}
|
}
|
||||||
@ -108,20 +127,21 @@ func (c *ApiController) UploadResource() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fileType := "unknown"
|
||||||
|
contentType := header.Header.Get("Content-Type")
|
||||||
|
if strings.HasPrefix(contentType, "image/") {
|
||||||
|
fileType = "image"
|
||||||
|
} else if strings.HasPrefix(contentType, "video/") {
|
||||||
|
fileType = "video"
|
||||||
|
}
|
||||||
|
|
||||||
fileUrl, objectKey, err := object.UploadFile(provider, fullFilePath, fileBuffer)
|
fileUrl, objectKey, err := object.UploadFile(provider, fullFilePath, fileBuffer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.ResponseError(err.Error())
|
c.ResponseError(err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fileType := "unknown"
|
|
||||||
fileFormat := filepath.Ext(fullFilePath)
|
fileFormat := filepath.Ext(fullFilePath)
|
||||||
if strings.Contains(".png|.jpg|.bmp", fileFormat) {
|
|
||||||
fileType = "image"
|
|
||||||
} else if strings.Contains(".mp4|.avi", fileFormat) {
|
|
||||||
fileType = "video"
|
|
||||||
}
|
|
||||||
|
|
||||||
fileSize := int(header.Size)
|
fileSize := int(header.Size)
|
||||||
resource := &object.Resource{
|
resource := &object.Resource{
|
||||||
Owner: owner,
|
Owner: owner,
|
||||||
|
@ -55,3 +55,17 @@ func UploadFile(provider *Provider, fullFilePath string, fileBuffer *bytes.Buffe
|
|||||||
fileUrl := fmt.Sprintf("%s?time=%s", util.UrlJoin(host, objectKey), util.GetCurrentUnixTime())
|
fileUrl := fmt.Sprintf("%s?time=%s", util.UrlJoin(host, objectKey), util.GetCurrentUnixTime())
|
||||||
return fileUrl, objectKey, nil
|
return fileUrl, objectKey, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DeleteFile(provider *Provider, objectKey string) error {
|
||||||
|
storageProvider := storage.GetStorageProvider(provider.Type, provider.ClientId, provider.ClientSecret, provider.RegionId, provider.Bucket, provider.Endpoint)
|
||||||
|
if storageProvider == nil {
|
||||||
|
return fmt.Errorf("the provider type: %s is not supported", provider.Type)
|
||||||
|
}
|
||||||
|
|
||||||
|
if provider.Domain == "" {
|
||||||
|
provider.Domain = storageProvider.GetEndpoint()
|
||||||
|
UpdateProvider(provider.GetId(), provider)
|
||||||
|
}
|
||||||
|
|
||||||
|
return storageProvider.Delete(objectKey)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user