added sftp client implementation
This commit is contained in:
parent
ad41ddbe54
commit
ce73f0472c
175 changed files with 28135 additions and 13 deletions
|
|
@ -40,6 +40,10 @@ func MetadataGenerator(file string, dst provider.FS) error {
|
|||
if !filepath.IsAbs(file) {
|
||||
return errors.New("metadata path is not absolute")
|
||||
}
|
||||
_, err := dst.Fstat(0)
|
||||
if err == provider.ErrFstat {
|
||||
return err
|
||||
}
|
||||
f, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE, 0o640)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -99,7 +103,7 @@ func NewMetadataHandler(ctx context.Context, fs *FS, file, dst string, log logr.
|
|||
return
|
||||
}
|
||||
err = json.NewDecoder(mh.f).Decode(&mh.md)
|
||||
if err != nil && err == io.EOF {
|
||||
if err != nil && err != io.EOF {
|
||||
return
|
||||
}
|
||||
mh.enc = json.NewEncoder(mh.f)
|
||||
|
|
@ -281,8 +285,10 @@ func (mh *MetadataHandler) flush() {
|
|||
func (mh *MetadataHandler) close() {
|
||||
mh.mu.Lock()
|
||||
for _, md := range mh.md {
|
||||
md.f.Sync()
|
||||
md.f.Close()
|
||||
if md.f != nil {
|
||||
md.f.Sync()
|
||||
md.f.Close()
|
||||
}
|
||||
}
|
||||
mh.mu.Unlock()
|
||||
mh.flush()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue