started rethinking of the image upload process
This commit is contained in:
parent
faa7a33f8f
commit
10ffa029f8
@ -9,6 +9,26 @@ import (
|
|||||||
|
|
||||||
func synchronizeImages(context *appContext, fileSystem map[string]*localFileStructure.FilesystemNode, existingCategories map[string]*piwigo.PiwigoCategory) error {
|
func synchronizeImages(context *appContext, fileSystem map[string]*localFileStructure.FilesystemNode, existingCategories map[string]*piwigo.PiwigoCategory) error {
|
||||||
|
|
||||||
|
// to make use of the new local data store, we have to rethink and refactor the whole local detection process
|
||||||
|
|
||||||
|
// extend the storage of the images to keep track of upload state
|
||||||
|
|
||||||
|
// TBD: How to deal with updates -> delete / upload all based on md5 sums
|
||||||
|
|
||||||
|
// STEP 1 - update and sync local datastore with filesystem
|
||||||
|
// - walk through all files of the fileSystem map
|
||||||
|
// - get file metadata from filesystem (date, filename, dir, modtime etc.)
|
||||||
|
// - recalculate md5 sum if file changed referring to the stored record (reduces load after first calculation a lot)
|
||||||
|
// - mark metadata as upload required if changed or new
|
||||||
|
|
||||||
|
// STEP 2 - get file states from piwigo (pwg.images.checkFiles)
|
||||||
|
// - get upload status of md5 sum from piwigo for all marked to upload
|
||||||
|
// - check if category has to be assigned (image possibly added to two albums -> only uploaded once but assigned multiple times)
|
||||||
|
|
||||||
|
// STEP 3: Upload missing images
|
||||||
|
// - upload file in chunks
|
||||||
|
// - assign image to category
|
||||||
|
|
||||||
imageFiles, err := localFileStructure.GetImageList(fileSystem)
|
imageFiles, err := localFileStructure.GetImageList(fileSystem)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -40,13 +60,13 @@ func findMissingImages(context *appContext, imageFiles []*localFileStructure.Ima
|
|||||||
files = append(files, file.Md5Sum)
|
files = append(files, file.Md5Sum)
|
||||||
}
|
}
|
||||||
|
|
||||||
misingSums, err := piwigo.ImageUploadRequired(context.piwigo, files)
|
missingSums, err := piwigo.ImageUploadRequired(context.piwigo, files)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
missingFiles := make([]*localFileStructure.ImageNode, 0, len(misingSums))
|
missingFiles := make([]*localFileStructure.ImageNode, 0, len(missingSums))
|
||||||
for _, sum := range misingSums {
|
for _, sum := range missingSums {
|
||||||
file := md5map[sum]
|
file := md5map[sum]
|
||||||
logrus.Infof("Found missing file %s", file.Path)
|
logrus.Infof("Found missing file %s", file.Path)
|
||||||
missingFiles = append(missingFiles, file)
|
missingFiles = append(missingFiles, file)
|
||||||
|
Loading…
Reference in New Issue
Block a user