項目
項目地址: https://github.com/Draymonders/cloud
歡迎大家Watch
or Star
緣由
由於項目中對大文件進行5MB
為一個分塊上傳(多線程,提升上傳效率),因此所有分塊上傳完是要求合並的。
filepath: 分塊所在目錄,分塊按照數字標號來有序存儲
filestore: 生成一個新文件的目錄位置
腳本文件
#!/bin/bash
filepath=$1
filestore=$2
echo "filepath: " $filepath
echo "filestorepath: " $filestore
if [ ! -f $filestore ]; then
echo "$filestore not exist"
else
rm -f $filestore
fi
for item in `ls $filepath | sort -n`
do
`cat $filepath/${item} >> ${filestore}`
echo "merge ${filepath/${item}} to $filestore ok"
done
echo "file store ok"
Go進行腳本控制
package main
import (
"fmt"
"os"
"os/exec"
)
const (
// dirPath = "/data/tmp/"
dirPath = "d:\\tmp\\"
)
func main() {
var cmd *exec.Cmd
filepath := dirPath + "/root5d0dd1ec/"
filestore := dirPath + "1111111.pdf"
cmd = exec.Command(dirPath+"mergeAll.sh", filepath, filestore)
// cmd.Run()
if _, err := cmd.Output(); err != nil {
fmt.Println(err)
os.Exit(1)
} else {
fmt.Println(filestore, " has been merge complete")
}
}