diff --git a/admin/sync/file.go b/admin/sync/file.go index c9e9c6d4..c9992862 100644 --- a/admin/sync/file.go +++ b/admin/sync/file.go @@ -23,6 +23,7 @@ type Importer interface { importFile(URI string, next func(string, string) (interface{}, error)) (interface{}, error) getFile(filename string, writer *bufio.Writer) error listDir(filename string) ([]string, error) + stat(filename string) (os.FileInfo, error) } var GlobalImporter Importer diff --git a/admin/sync/importer_cloud.go b/admin/sync/importer_cloud.go index f836927c..07b8406f 100644 --- a/admin/sync/importer_cloud.go +++ b/admin/sync/importer_cloud.go @@ -5,6 +5,7 @@ import ( "errors" "net/http" "net/url" + "os" "path" "strings" @@ -95,3 +96,7 @@ func (i CloudImporter) listDir(filename string) ([]string, error) { return res, nil } } + +func (i CloudImporter) stat(filename string) (os.FileInfo, error) { + return gowebdav.NewClient(i.baseDAV.String(), i.username, i.password).Stat(strings.Replace(url.PathEscape(filename), "%2F", "/", -1)) +} diff --git a/admin/sync/importer_localfs.go b/admin/sync/importer_localfs.go index 4317ec72..fe8c6530 100644 --- a/admin/sync/importer_localfs.go +++ b/admin/sync/importer_localfs.go @@ -70,3 +70,7 @@ func (i LocalImporter) listDir(filename string) ([]string, error) { return res, nil } } + +func (i LocalImporter) stat(filename string) (os.FileInfo, error) { + return os.Stat(path.Join(i.Base, filename)) +}