mirror of
https://github.com/photoprism/photoprism.git
synced 2025-12-12 00:34:13 +01:00
WebDAV: Add "failed" state for files that cannot be synchronized #4827
Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
@@ -8,6 +8,7 @@ const (
|
|||||||
FileSyncNew = "new"
|
FileSyncNew = "new"
|
||||||
FileSyncIgnore = "ignore"
|
FileSyncIgnore = "ignore"
|
||||||
FileSyncExists = "exists"
|
FileSyncExists = "exists"
|
||||||
|
FileSyncFailed = "failed"
|
||||||
FileSyncDownloaded = "downloaded"
|
FileSyncDownloaded = "downloaded"
|
||||||
FileSyncUploaded = "uploaded"
|
FileSyncUploaded = "uploaded"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func (w *Sync) relatedDownloads(a entity.Service) (result Downloads, err error)
|
|||||||
result = make(Downloads)
|
result = make(Downloads)
|
||||||
maxResults := 1000
|
maxResults := 1000
|
||||||
|
|
||||||
// Get remote files from database
|
// Get list of remote files from database.
|
||||||
files, err := query.FileSyncs(a.ID, entity.FileSyncNew, maxResults)
|
files, err := query.FileSyncs(a.ID, entity.FileSyncNew, maxResults)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -132,6 +132,10 @@ func (w *Sync) download(a entity.Service) (complete bool, err error) {
|
|||||||
if err = client.Download(file.RemoteName, localName, false); err != nil {
|
if err = client.Download(file.RemoteName, localName, false); err != nil {
|
||||||
file.Errors++
|
file.Errors++
|
||||||
file.Error = err.Error()
|
file.Error = err.Error()
|
||||||
|
|
||||||
|
if file.Errors > a.RetryLimit {
|
||||||
|
file.Status = entity.FileSyncFailed
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Infof("sync: downloaded %s from %s", file.RemoteName, clean.Log(a.AccName))
|
log.Infof("sync: downloaded %s from %s", file.RemoteName, clean.Log(a.AccName))
|
||||||
file.Status = entity.FileSyncDownloaded
|
file.Status = entity.FileSyncDownloaded
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ func (w *Sync) refresh(a entity.Service) (complete bool, err error) {
|
|||||||
f.RemoteDate = file.Date
|
f.RemoteDate = file.Date
|
||||||
f.RemoteSize = file.Size
|
f.RemoteSize = file.Size
|
||||||
|
|
||||||
// Select supported types for download
|
// Select supported types for download.
|
||||||
content := media.FromName(file.Name)
|
content := media.FromName(file.Name)
|
||||||
switch content {
|
switch content {
|
||||||
case media.Image, media.Sidecar:
|
case media.Image, media.Sidecar, media.Vector, media.Document, media.Live, media.Animated:
|
||||||
f.Status = entity.FileSyncNew
|
f.Status = entity.FileSyncNew
|
||||||
case media.Raw, media.Video:
|
case media.Raw, media.Video:
|
||||||
if a.SyncRaw {
|
if a.SyncRaw {
|
||||||
|
|||||||
Reference in New Issue
Block a user