Comment some print.
This commit is contained in:
parent
270af9260d
commit
177ee3a6fb
@ -1,10 +1,8 @@
|
|||||||
package rest
|
package rest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"archive/zip"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/eyebluecn/tank/code/core"
|
"github.com/eyebluecn/tank/code/core"
|
||||||
"github.com/eyebluecn/tank/code/tool/builder"
|
|
||||||
"github.com/eyebluecn/tank/code/tool/download"
|
"github.com/eyebluecn/tank/code/tool/download"
|
||||||
"github.com/eyebluecn/tank/code/tool/result"
|
"github.com/eyebluecn/tank/code/tool/result"
|
||||||
"github.com/eyebluecn/tank/code/tool/util"
|
"github.com/eyebluecn/tank/code/tool/util"
|
||||||
@ -12,7 +10,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -98,6 +95,7 @@ func (this *MatterService) AtomicDownloadDirectory(
|
|||||||
this.logger.Info("文件夹 %s 大小为 %s", matter.Name, util.HumanFileSize(sumSize))
|
this.logger.Info("文件夹 %s 大小为 %s", matter.Name, util.HumanFileSize(sumSize))
|
||||||
|
|
||||||
//TODO: 文件夹下载的大小限制
|
//TODO: 文件夹下载的大小限制
|
||||||
|
|
||||||
//准备zip放置的目录。
|
//准备zip放置的目录。
|
||||||
destZipDirPath := fmt.Sprintf("%s/%d", GetUserZipRootDir(matter.Username), time.Now().UnixNano()/1e6)
|
destZipDirPath := fmt.Sprintf("%s/%d", GetUserZipRootDir(matter.Username), time.Now().UnixNano()/1e6)
|
||||||
util.MakeDirAll(destZipDirPath)
|
util.MakeDirAll(destZipDirPath)
|
||||||
@ -106,98 +104,17 @@ func (this *MatterService) AtomicDownloadDirectory(
|
|||||||
|
|
||||||
destZipPath := fmt.Sprintf("%s/%s", destZipDirPath, destZipName)
|
destZipPath := fmt.Sprintf("%s/%s", destZipDirPath, destZipName)
|
||||||
|
|
||||||
//destZipFile, err := os.Create(destZipPath)
|
|
||||||
//util.PanicError(err)
|
|
||||||
//
|
|
||||||
//defer func() {
|
|
||||||
// err := destZipFile.Close()
|
|
||||||
// util.PanicError(err)
|
|
||||||
//}()
|
|
||||||
//
|
|
||||||
//zipWriter := zip.NewWriter(destZipFile)
|
|
||||||
//defer func() {
|
|
||||||
// err := zipWriter.Close()
|
|
||||||
// util.PanicError(err)
|
|
||||||
//}()
|
|
||||||
|
|
||||||
//this.zipCompress(matter, GetUserFileRootDir(matter.Username), zipWriter)
|
|
||||||
|
|
||||||
util.Zip(matter.AbsolutePath(), destZipPath)
|
util.Zip(matter.AbsolutePath(), destZipPath)
|
||||||
|
|
||||||
//下载
|
//下载
|
||||||
download.DownloadFile(writer, request, destZipPath, destZipName, true)
|
download.DownloadFile(writer, request, destZipPath, destZipName, true)
|
||||||
|
|
||||||
//TODO: 删除临时压缩文件
|
//删除临时压缩文件
|
||||||
|
err := os.Remove(destZipPath)
|
||||||
}
|
if err != nil {
|
||||||
|
this.logger.Error("删除磁盘上的文件出错 %s", err.Error())
|
||||||
//zip压缩一个matter.
|
|
||||||
func (this *MatterService) zipCompress(matter *Matter, prefix string, zipWriter *zip.Writer) {
|
|
||||||
|
|
||||||
if matter == nil {
|
|
||||||
panic(result.BadRequest("matter不能为nil"))
|
|
||||||
}
|
|
||||||
|
|
||||||
fileInfo, err := os.Stat(matter.AbsolutePath())
|
|
||||||
this.PanicError(err)
|
|
||||||
|
|
||||||
fmt.Println("遍历文件: " + matter.AbsolutePath())
|
|
||||||
|
|
||||||
if matter.Dir {
|
|
||||||
|
|
||||||
//获取下一级的文件。
|
|
||||||
prefix = prefix + "/" + matter.Name
|
|
||||||
|
|
||||||
sortArray := []builder.OrderPair{
|
|
||||||
{
|
|
||||||
Key: "path",
|
|
||||||
Value: "ASC",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
matters := this.matterDao.List(matter.Uuid, matter.UserUuid, sortArray)
|
|
||||||
|
|
||||||
// 通过文件信息,创建 zip 的文件信息
|
|
||||||
fileHeader, err := zip.FileInfoHeader(fileInfo)
|
|
||||||
this.PanicError(err)
|
|
||||||
|
|
||||||
//写入头信息。目录无需写入内容。目录的头部要去掉斜杠,尾部要加上斜杠。
|
|
||||||
fileHeader.Name = strings.TrimPrefix(prefix+"/", string(filepath.Separator))
|
|
||||||
|
|
||||||
fmt.Println("文件夹头: " + fileHeader.Name)
|
|
||||||
|
|
||||||
// 写入文件信息,并返回一个 Write 结构
|
|
||||||
_, err = zipWriter.CreateHeader(fileHeader)
|
|
||||||
this.PanicError(err)
|
|
||||||
|
|
||||||
for _, subMatter := range matters {
|
|
||||||
this.zipCompress(subMatter, prefix, zipWriter)
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
fileHeader, err := zip.FileInfoHeader(fileInfo)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
//第一个斜杠不需要。
|
|
||||||
fileHeader.Name = strings.TrimPrefix(prefix+"/"+matter.Name, string(filepath.Separator))
|
|
||||||
|
|
||||||
fmt.Println("文件头部: " + fileHeader.Name)
|
|
||||||
|
|
||||||
writer, err := zipWriter.CreateHeader(fileHeader)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
file, err := os.Open(matter.AbsolutePath())
|
|
||||||
_, err = io.Copy(writer, file)
|
|
||||||
defer func() {
|
|
||||||
err := file.Close()
|
|
||||||
this.PanicError(err)
|
|
||||||
}()
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
util.DeleteEmptyDir(destZipDirPath)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ package util
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"archive/zip"
|
"archive/zip"
|
||||||
"fmt"
|
|
||||||
"github.com/eyebluecn/tank/code/tool/result"
|
"github.com/eyebluecn/tank/code/tool/result"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
@ -41,7 +40,7 @@ func Zip(srcPath string, destPath string) {
|
|||||||
return errBack
|
return errBack
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("遍历文件: " + path)
|
//fmt.Println("遍历文件: " + path)
|
||||||
|
|
||||||
// 通过文件信息,创建 zip 的文件信息
|
// 通过文件信息,创建 zip 的文件信息
|
||||||
fileHeader, err := zip.FileInfoHeader(fileInfo)
|
fileHeader, err := zip.FileInfoHeader(fileInfo)
|
||||||
@ -60,7 +59,7 @@ func Zip(srcPath string, destPath string) {
|
|||||||
prefix = prefix + "/" + fileInfo.Name()
|
prefix = prefix + "/" + fileInfo.Name()
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("头部情况: " + fileHeader.Name)
|
//fmt.Println("头部情况: " + fileHeader.Name)
|
||||||
|
|
||||||
// 写入文件信息,并返回一个 Write 结构
|
// 写入文件信息,并返回一个 Write 结构
|
||||||
writer, err := zipWriter.CreateHeader(fileHeader)
|
writer, err := zipWriter.CreateHeader(fileHeader)
|
||||||
|
Loading…
Reference in New Issue
Block a user