zoho: remove simple file names complication which is no longer needed
This commit is contained in:
parent
00f0e9df9d
commit
edf6537c61
1 changed files with 6 additions and 48 deletions
|
@ -639,15 +639,6 @@ func (f *Fs) createObject(ctx context.Context, remote string, size int64, modTim
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func isSimpleName(s string) bool {
|
|
||||||
for _, r := range s {
|
|
||||||
if (r < 'a' || r > 'z') && (r < 'A' || r > 'Z') && (r != '.') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Fs) upload(ctx context.Context, name string, parent string, size int64, in io.Reader, options ...fs.OpenOption) (*api.Item, error) {
|
func (f *Fs) upload(ctx context.Context, name string, parent string, size int64, in io.Reader, options ...fs.OpenOption) (*api.Item, error) {
|
||||||
params := url.Values{}
|
params := url.Values{}
|
||||||
params.Set("filename", name)
|
params.Set("filename", name)
|
||||||
|
@ -718,25 +709,12 @@ func (f *Fs) Put(ctx context.Context, in io.Reader, src fs.ObjectInfo, options .
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if isSimpleName(leaf) {
|
// Upload the file
|
||||||
info, err := f.upload(ctx, f.opt.Enc.FromStandardName(leaf), directoryID, size, in, options...)
|
info, err := f.upload(ctx, f.opt.Enc.FromStandardName(leaf), directoryID, size, in, options...)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return f.newObjectWithInfo(ctx, remote, info)
|
|
||||||
}
|
|
||||||
|
|
||||||
tempName := "rcloneTemp" + random.String(8)
|
|
||||||
info, err := f.upload(ctx, tempName, directoryID, size, in, options...)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
return f.newObjectWithInfo(ctx, remote, info)
|
||||||
o, err := f.newObjectWithInfo(ctx, remote, info)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return o, o.(*Object).rename(ctx, leaf)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mkdir creates the container if it doesn't exist
|
// Mkdir creates the container if it doesn't exist
|
||||||
|
@ -1200,32 +1178,12 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if isSimpleName(leaf) {
|
// Overwrite the old file
|
||||||
// Simple name we can just overwrite the old file
|
info, err := o.fs.upload(ctx, o.fs.opt.Enc.FromStandardName(leaf), directoryID, size, in, options...)
|
||||||
info, err := o.fs.upload(ctx, o.fs.opt.Enc.FromStandardName(leaf), directoryID, size, in, options...)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return o.setMetaData(info)
|
|
||||||
}
|
|
||||||
|
|
||||||
// We have to fall back to upload + rename
|
|
||||||
tempName := "rcloneTemp" + random.String(8)
|
|
||||||
info, err := o.fs.upload(ctx, tempName, directoryID, size, in, options...)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
return o.setMetaData(info)
|
||||||
// upload was successful, need to delete old object before rename
|
|
||||||
if err = o.Remove(ctx); err != nil {
|
|
||||||
return fmt.Errorf("failed to remove old object: %w", err)
|
|
||||||
}
|
|
||||||
if err = o.setMetaData(info); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// rename also updates metadata
|
|
||||||
return o.rename(ctx, leaf)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove an object
|
// Remove an object
|
||||||
|
|
Loading…
Reference in a new issue