Add Go error handlings
This commit is contained in:
parent
b3f5d9ea06
commit
8d717a8b93
|
@ -41,7 +41,12 @@ func (c *ApiController) GetStore() {
|
|||
return
|
||||
}
|
||||
|
||||
store.Populate()
|
||||
err = store.Populate()
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
c.ResponseOk(store)
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,12 @@ func addRecord(c *ApiController, userName string, requestUri string) {
|
|||
record.RequestUri = requestUri
|
||||
}
|
||||
|
||||
util.SafeGoroutine(func() { casdoorsdk.AddRecord(record) })
|
||||
util.SafeGoroutine(func() {
|
||||
_, err := casdoorsdk.AddRecord(record)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func addRecordForFile(c *ApiController, userName string, action string, storeId string, key string, filename string, isLeaf bool) {
|
||||
|
|
|
@ -38,7 +38,12 @@ func (c *ApiController) GetVideo() {
|
|||
id := c.Input().Get("id")
|
||||
|
||||
video, err := object.GetVideo(id)
|
||||
video.Populate()
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
err = video.Populate()
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
|
@ -161,7 +166,12 @@ func (c *ApiController) UploadVideo() {
|
|||
Labels: []*object.Label{},
|
||||
DataUrls: []string{},
|
||||
}
|
||||
object.AddVideo(video)
|
||||
_, err = object.AddVideo(video)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
c.ResponseOk(fileId)
|
||||
} else {
|
||||
c.ResponseError("videoId is empty")
|
||||
|
|
|
@ -33,15 +33,24 @@ func AddFile(storeId string, key string, isLeaf bool, filename string, file mult
|
|||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
|
||||
bs := fileBuffer.Bytes()
|
||||
storage.PutObject(store.Bucket, objectKey, fileBuffer)
|
||||
err = storage.PutObject(store.Bucket, objectKey, fileBuffer)
|
||||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
|
||||
return true, bs, nil
|
||||
} else {
|
||||
objectKey = fmt.Sprintf("%s/%s/_hidden.ini", key, filename)
|
||||
objectKey = strings.TrimLeft(objectKey, "/")
|
||||
fileBuffer = bytes.NewBuffer(nil)
|
||||
bs := fileBuffer.Bytes()
|
||||
storage.PutObject(store.Bucket, objectKey, fileBuffer)
|
||||
err = storage.PutObject(store.Bucket, objectKey, fileBuffer)
|
||||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
|
||||
return true, bs, nil
|
||||
}
|
||||
}
|
||||
|
@ -56,11 +65,21 @@ func DeleteFile(storeId string, key string, isLeaf bool) (bool, error) {
|
|||
}
|
||||
|
||||
if isLeaf {
|
||||
storage.DeleteObject(store.Bucket, key)
|
||||
err = storage.DeleteObject(store.Bucket, key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
} else {
|
||||
objects := storage.ListObjects(store.Bucket, key)
|
||||
objects, err := storage.ListObjects(store.Bucket, key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
for _, object := range objects {
|
||||
storage.DeleteObject(store.Bucket, object.Key)
|
||||
err = storage.DeleteObject(store.Bucket, object.Key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
}
|
||||
}
|
||||
return true, nil
|
||||
|
|
|
@ -66,8 +66,11 @@ func isObjectLeaf(object *oss.ObjectProperties) bool {
|
|||
return isLeaf
|
||||
}
|
||||
|
||||
func (store *Store) Populate() {
|
||||
objects := storage.ListObjects(store.Bucket, "")
|
||||
func (store *Store) Populate() error {
|
||||
objects, err := storage.ListObjects(store.Bucket, "")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if store.FileTree == nil {
|
||||
store.FileTree = &File{
|
||||
|
@ -102,10 +105,15 @@ func (store *Store) Populate() {
|
|||
|
||||
//fmt.Printf("%s, %d, %v\n", object.Key, object.Size, object.LastModified)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (store *Store) GetVideoData() []string {
|
||||
objects := storage.ListObjects(store.Bucket, "2023/视频附件")
|
||||
func (store *Store) GetVideoData() ([]string, error) {
|
||||
objects, err := storage.ListObjects(store.Bucket, "2023/视频附件")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res := []string{}
|
||||
for _, object := range objects {
|
||||
|
@ -117,5 +125,5 @@ func (store *Store) GetVideoData() []string {
|
|||
res = append(res, url)
|
||||
}
|
||||
|
||||
return res
|
||||
return res, nil
|
||||
}
|
||||
|
|
|
@ -5,7 +5,18 @@ import "testing"
|
|||
func TestUpdateStoreFolders(t *testing.T) {
|
||||
InitConfig()
|
||||
|
||||
store, _ := getStore("admin", "default")
|
||||
//store.Populate()
|
||||
store.GetVideoData()
|
||||
store, err := getStore("admin", "default")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
//err = store.Populate()
|
||||
//if err != nil {
|
||||
// panic(err)
|
||||
//}
|
||||
|
||||
_, err = store.GetVideoData()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,7 +114,13 @@ func (video *Video) GetId() string {
|
|||
return fmt.Sprintf("%s/%s", video.Owner, video.Name)
|
||||
}
|
||||
|
||||
func (video *Video) Populate() {
|
||||
func (video *Video) Populate() error {
|
||||
store, _ := getStore("admin", "default")
|
||||
video.DataUrls = store.GetVideoData()
|
||||
dataUrls, err := store.GetVideoData()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
video.DataUrls = dataUrls
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
"github.com/aliyun/aliyun-oss-go-sdk/oss"
|
||||
)
|
||||
|
||||
func getBucket(bucketName string) *oss.Bucket {
|
||||
func getBucket(bucketName string) (*oss.Bucket, error) {
|
||||
client, err := oss.New(endpoint, clientId, clientSecret)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -15,28 +15,29 @@ func getBucket(bucketName string) *oss.Bucket {
|
|||
|
||||
bucket, err := client.Bucket(bucketName)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return bucket
|
||||
return bucket, nil
|
||||
}
|
||||
|
||||
func ListObjects(bucketName string, prefix string) []oss.ObjectProperties {
|
||||
res := []oss.ObjectProperties{}
|
||||
|
||||
func ListObjects(bucketName string, prefix string) ([]oss.ObjectProperties, error) {
|
||||
if bucketName == "" {
|
||||
return res
|
||||
return nil, fmt.Errorf("bucket name is empty")
|
||||
}
|
||||
|
||||
bucket := getBucket(bucketName)
|
||||
bucket, err := getBucket(bucketName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res := []oss.ObjectProperties{}
|
||||
marker := oss.Marker("")
|
||||
i := 0
|
||||
for {
|
||||
resp, err := bucket.ListObjects(oss.Prefix(prefix), oss.MaxKeys(1000), marker)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return res
|
||||
return nil, err
|
||||
}
|
||||
|
||||
marker = oss.Marker(resp.NextMarker)
|
||||
|
@ -52,23 +53,25 @@ func ListObjects(bucketName string, prefix string) []oss.ObjectProperties {
|
|||
}
|
||||
}
|
||||
|
||||
return res
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func PutObject(bucketName string, key string, fileBuffer *bytes.Buffer) {
|
||||
bucket := getBucket(bucketName)
|
||||
|
||||
err := bucket.PutObject(key, fileBuffer)
|
||||
func PutObject(bucketName string, key string, fileBuffer *bytes.Buffer) error {
|
||||
bucket, err := getBucket(bucketName)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteObject(bucketName string, key string) {
|
||||
bucket := getBucket(bucketName)
|
||||
err = bucket.PutObject(key, fileBuffer)
|
||||
return err
|
||||
}
|
||||
|
||||
err := bucket.DeleteObject(key)
|
||||
func DeleteObject(bucketName string, key string) error {
|
||||
bucket, err := getBucket(bucketName)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = bucket.DeleteObject(key)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -3,5 +3,8 @@ package storage
|
|||
import "testing"
|
||||
|
||||
func TestStorage(t *testing.T) {
|
||||
ListObjects("casibase", "")
|
||||
_, err := ListObjects("casibase", "")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue