Add DeleteFile().

This commit is contained in:
Yang Luo 2021-08-15 00:41:51 +08:00
parent 495b64995f
commit 518c3f9f69
2 changed files with 41 additions and 7 deletions

View File

@ -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,

View File

@ -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)
}