41 lines
836 B
Go
41 lines
836 B
Go
package handler
|
|
|
|
import (
|
|
"github.com/loveuer/nf-disk/internal/manager"
|
|
"github.com/loveuer/nf-disk/internal/s3"
|
|
"github.com/loveuer/nf-disk/ndh"
|
|
)
|
|
|
|
func BucketFiles(c *ndh.Ctx) error {
|
|
type Req struct {
|
|
ConnId uint64 `json:"conn_id"`
|
|
Bucket string `json:"bucket"`
|
|
Prefix string `json:"prefix"`
|
|
}
|
|
|
|
var (
|
|
err error
|
|
req = new(Req)
|
|
client *s3.Client
|
|
list []*s3.ListFileRes
|
|
)
|
|
|
|
if err = c.ReqParse(req); err != nil {
|
|
return c.Send400(err.Error())
|
|
}
|
|
|
|
if req.ConnId == 0 || req.Bucket == "" {
|
|
return c.Send400(req, "缺少参数")
|
|
}
|
|
|
|
if _, client, err = manager.Manager.Use(req.ConnId); err != nil {
|
|
return c.Send500(err.Error())
|
|
}
|
|
|
|
if list, err = client.ListFile(c.Context(), req.Bucket, req.Prefix); err != nil {
|
|
return c.Send500(err.Error())
|
|
}
|
|
|
|
return c.Send200(map[string]any{"list": list})
|
|
}
|