mirror of
https://github.com/celogeek/piwigo-cli.git
synced 2025-05-25 10:12:37 +02:00
optimize
This commit is contained in:
parent
9beadc7890
commit
a99650d614
@ -211,16 +211,7 @@ func (p *Piwigo) CheckFiles(filesToCheck chan *FileToUpload, files chan *FileToU
|
|||||||
|
|
||||||
func (p *Piwigo) UploadFiles(files chan *FileToUpload, stat *FileToUploadStat, hasVideoJS bool, nbJobs int) {
|
func (p *Piwigo) UploadFiles(files chan *FileToUpload, stat *FileToUploadStat, hasVideoJS bool, nbJobs int) {
|
||||||
defer stat.Close()
|
defer stat.Close()
|
||||||
|
for file := range files {
|
||||||
wg := &sync.WaitGroup{}
|
p.Upload(file, stat, nbJobs, hasVideoJS)
|
||||||
for i := 0; i < nbJobs; i++ {
|
|
||||||
wg.Add(1)
|
|
||||||
go func() {
|
|
||||||
defer wg.Done()
|
|
||||||
for file := range files {
|
|
||||||
p.Upload(file, stat, 2, hasVideoJS)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
wg.Wait()
|
|
||||||
}
|
}
|
||||||
|
@ -13,9 +13,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var CHUNK_SIZE int64 = 1 * 1024 * 1024
|
||||||
var CHUNK_BUFF_SIZE int64 = 32 * 1024
|
var CHUNK_BUFF_SIZE int64 = 32 * 1024
|
||||||
var CHUNK_BUFF_COUNT int = 32
|
var CHUNK_BUFF_COUNT = CHUNK_SIZE / CHUNK_BUFF_SIZE
|
||||||
var CHUNK_PRECOMPUTE_SIZE int = 8
|
|
||||||
|
|
||||||
func DumpResponse(v interface{}) (err error) {
|
func DumpResponse(v interface{}) (err error) {
|
||||||
b, err := json.MarshalIndent(v, "", " ")
|
b, err := json.MarshalIndent(v, "", " ")
|
||||||
@ -65,7 +65,7 @@ func Base64Chunker(filename string) (out chan *Base64ChunkResult, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
out = make(chan *Base64ChunkResult, CHUNK_PRECOMPUTE_SIZE)
|
out = make(chan *Base64ChunkResult, 8)
|
||||||
go func() {
|
go func() {
|
||||||
b := make([]byte, CHUNK_BUFF_SIZE)
|
b := make([]byte, CHUNK_BUFF_SIZE)
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
@ -76,7 +76,7 @@ func Base64Chunker(filename string) (out chan *Base64ChunkResult, err error) {
|
|||||||
Position: position,
|
Position: position,
|
||||||
}
|
}
|
||||||
b64 := base64.NewEncoder(base64.StdEncoding, &bf.Buffer)
|
b64 := base64.NewEncoder(base64.StdEncoding, &bf.Buffer)
|
||||||
for i := 0; i < CHUNK_BUFF_COUNT; i++ {
|
for i := int64(0); i < CHUNK_BUFF_COUNT; i++ {
|
||||||
n, _ := f.Read(b)
|
n, _ := f.Read(b)
|
||||||
if n == 0 {
|
if n == 0 {
|
||||||
ok = true
|
ok = true
|
||||||
|
@ -32,7 +32,7 @@ func (c *ImagesUploadTreeCommand) Execute(args []string) error {
|
|||||||
files := make(chan *piwigo.FileToUpload, 1000)
|
files := make(chan *piwigo.FileToUpload, 1000)
|
||||||
|
|
||||||
go p.ScanTree(c.Dirname, c.CategoryId, 0, &status.UploadFileType, stat, filesToCheck)
|
go p.ScanTree(c.Dirname, c.CategoryId, 0, &status.UploadFileType, stat, filesToCheck)
|
||||||
go p.CheckFiles(filesToCheck, files, stat, 2)
|
go p.CheckFiles(filesToCheck, files, stat, 8)
|
||||||
p.UploadFiles(files, stat, hasVideoJS, 4)
|
p.UploadFiles(files, stat, hasVideoJS, 4)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user