feat(workflow): import files from external storage
This commit is contained in:
@@ -3,6 +3,8 @@ package explorer
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/cloudreve/Cloudreve/v4/application/dependency"
|
||||
"github.com/cloudreve/Cloudreve/v4/inventory/types"
|
||||
"github.com/cloudreve/Cloudreve/v4/pkg/cluster/routes"
|
||||
@@ -14,7 +16,6 @@ import (
|
||||
"github.com/cloudreve/Cloudreve/v4/pkg/serializer"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/samber/lo"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// SlaveDownloadService 从机文件下載服务
|
||||
@@ -35,12 +36,6 @@ type SlaveFilesService struct {
|
||||
Files []string `json:"files" binding:"required,gt=0"`
|
||||
}
|
||||
|
||||
// SlaveListService 从机列表服务
|
||||
type SlaveListService struct {
|
||||
Path string `json:"path" binding:"required,min=1,max=65535"`
|
||||
Recursive bool `json:"recursive"`
|
||||
}
|
||||
|
||||
// SlaveServe serves file content
|
||||
func (s *EntityDownloadService) SlaveServe(c *gin.Context) error {
|
||||
dep := dependency.FromContext(c)
|
||||
@@ -249,3 +244,25 @@ func (service *SlaveDeleteFileService) Delete(c *gin.Context) ([]string, error)
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
type (
|
||||
SlaveListParamCtx struct{}
|
||||
SlaveListService struct {
|
||||
Path string `uri:"path" binding:"required"`
|
||||
Recursive bool `uri:"recursive"`
|
||||
}
|
||||
)
|
||||
|
||||
func (s *SlaveListService) List(c *gin.Context) ([]fs.PhysicalObject, error) {
|
||||
dep := dependency.FromContext(c)
|
||||
m := manager.NewFileManager(dep, nil)
|
||||
defer m.Recycle()
|
||||
d := m.LocalDriver(nil)
|
||||
|
||||
objects, err := d.List(c, s.Path, func(i int) {}, s.Recursive)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to list files: %w", err)
|
||||
}
|
||||
|
||||
return objects, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user