Feat: batch download in streamming paradism
Fix: add cache-controler header in API call responses
This commit is contained in:
@@ -3,7 +3,10 @@ package task
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
model "github.com/cloudreve/Cloudreve/v3/models"
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/filesystem"
|
||||
@@ -93,20 +96,37 @@ func (job *CompressTask) Do() {
|
||||
util.Log().Debug("开始压缩文件")
|
||||
job.TaskModel.SetProgress(CompressingProgress)
|
||||
|
||||
// 创建临时压缩文件
|
||||
saveFolder := "compress"
|
||||
zipFilePath := filepath.Join(
|
||||
util.RelativePath(model.GetSettingByName("temp_path")),
|
||||
saveFolder,
|
||||
fmt.Sprintf("archive_%d.zip", time.Now().UnixNano()),
|
||||
)
|
||||
zipFile, err := util.CreatNestedFile(zipFilePath)
|
||||
if err != nil {
|
||||
util.Log().Warning("%s", err)
|
||||
job.SetErrorMsg(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
defer zipFile.Close()
|
||||
|
||||
// 开始压缩
|
||||
ctx := context.Background()
|
||||
zipFile, err := fs.Compress(ctx, job.TaskProps.Dirs, job.TaskProps.Files, false)
|
||||
err = fs.Compress(ctx, zipFile, job.TaskProps.Dirs, job.TaskProps.Files, false)
|
||||
if err != nil {
|
||||
job.SetErrorMsg(err.Error())
|
||||
return
|
||||
}
|
||||
job.zipPath = zipFile
|
||||
|
||||
job.zipPath = zipFilePath
|
||||
zipFile.Close()
|
||||
util.Log().Debug("压缩文件存放至%s,开始上传", zipFile)
|
||||
job.TaskModel.SetProgress(TransferringProgress)
|
||||
|
||||
// 上传文件
|
||||
err = fs.UploadFromPath(ctx, zipFile, job.TaskProps.Dst, 0)
|
||||
err = fs.UploadFromPath(ctx, zipFilePath, job.TaskProps.Dst, 0)
|
||||
if err != nil {
|
||||
job.SetErrorMsg(err.Error())
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user