diff --git a/backend/internxt/internxt.go b/backend/internxt/internxt.go index 3efeb5aac..a221abe32 100644 --- a/backend/internxt/internxt.go +++ b/backend/internxt/internxt.go @@ -9,7 +9,6 @@ import ( "io" "net" "path" - "path/filepath" "strings" "sync" "time" @@ -508,8 +507,8 @@ func (f *Fs) CreateDir(ctx context.Context, pathID, leaf string) (string, error) func (f *Fs) preUploadCheck(ctx context.Context, leaf, directoryID string) (*folders.File, error) { // Parse name and extension from the leaf baseName := f.opt.Encoding.FromStandardName(leaf) - name := strings.TrimSuffix(baseName, filepath.Ext(baseName)) - ext := strings.TrimPrefix(filepath.Ext(baseName), ".") + name := strings.TrimSuffix(baseName, path.Ext(baseName)) + ext := strings.TrimPrefix(path.Ext(baseName), ".") checkResult, err := files.CheckFilesExistence(ctx, f.cfg, directoryID, []files.FileExistenceCheck{ { @@ -580,7 +579,7 @@ func (f *Fs) List(ctx context.Context, dir string) (fs.DirEntries, error) { return nil, err } for _, e := range foldersList { - remote := filepath.Join(dir, f.opt.Encoding.ToStandardName(e.PlainName)) + remote := path.Join(dir, f.opt.Encoding.ToStandardName(e.PlainName)) out = append(out, fs.NewDir(remote, e.ModificationTime)) } var filesList []folders.File @@ -597,7 +596,7 @@ func (f *Fs) List(ctx context.Context, dir string) (fs.DirEntries, error) { if len(e.Type) > 0 { remote += "." + e.Type } - remote = filepath.Join(dir, f.opt.Encoding.ToStandardName(remote)) + remote = path.Join(dir, f.opt.Encoding.ToStandardName(remote)) out = append(out, newObjectWithFile(f, remote, &e)) } return out, nil @@ -676,7 +675,7 @@ func (f *Fs) Remove(ctx context.Context, remote string) error { // NewObject creates a new object func (f *Fs) NewObject(ctx context.Context, remote string) (fs.Object, error) { - parentDir := filepath.Dir(remote) + parentDir := path.Dir(remote) if parentDir == "." { parentDir = "" @@ -696,7 +695,7 @@ func (f *Fs) NewObject(ctx context.Context, remote string) (fs.Object, error) { if err != nil { return nil, err } - targetName := filepath.Base(remote) + targetName := path.Base(remote) for _, e := range files { name := e.PlainName if len(e.Type) > 0 { @@ -837,9 +836,9 @@ func (o *Object) Open(ctx context.Context, options ...fs.OpenOption) (io.ReadClo func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, options ...fs.OpenOption) error { remote := o.remote - origBaseName := filepath.Base(remote) - origName := strings.TrimSuffix(origBaseName, filepath.Ext(origBaseName)) - origType := strings.TrimPrefix(filepath.Ext(origBaseName), ".") + origBaseName := path.Base(remote) + origName := strings.TrimSuffix(origBaseName, path.Ext(origBaseName)) + origType := strings.TrimPrefix(path.Ext(origBaseName), ".") // Create directory if it doesn't exist _, dirID, err := o.f.dirCache.FindPath(ctx, remote, true) @@ -857,9 +856,9 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op // Step 1: If file exists, rename to backup (preserves old file during upload) if oldUUID != "" { // Generate unique backup name - baseName := filepath.Base(remote) - name := strings.TrimSuffix(baseName, filepath.Ext(baseName)) - ext := strings.TrimPrefix(filepath.Ext(baseName), ".") + baseName := path.Base(remote) + name := strings.TrimSuffix(baseName, path.Ext(baseName)) + ext := strings.TrimPrefix(path.Ext(baseName), ".") backupSuffix := fmt.Sprintf(".rclone-backup-%s", random.String(8)) backupName = o.f.opt.Encoding.FromStandardName(name + backupSuffix) @@ -891,7 +890,7 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op meta, err = buckets.UploadFileStreamAuto(ctx, o.f.cfg, dirID, - o.f.opt.Encoding.FromStandardName(filepath.Base(remote)), + o.f.opt.Encoding.FromStandardName(path.Base(remote)), in, src.Size(), src.ModTime(ctx), @@ -981,7 +980,7 @@ func (o *Object) recoverFromTimeoutConflict(ctx context.Context, uploadErr error return nil, uploadErr } - baseName := filepath.Base(remote) + baseName := path.Base(remote) encodedName := o.f.opt.Encoding.FromStandardName(baseName) var meta *buckets.CreateMetaResponse @@ -991,8 +990,8 @@ func (o *Object) recoverFromTimeoutConflict(ctx context.Context, uploadErr error return o.f.shouldRetry(ctx, err) } if existingFile != nil { - name := strings.TrimSuffix(baseName, filepath.Ext(baseName)) - ext := strings.TrimPrefix(filepath.Ext(baseName), ".") + name := strings.TrimSuffix(baseName, path.Ext(baseName)) + ext := strings.TrimPrefix(path.Ext(baseName), ".") meta = &buckets.CreateMetaResponse{ UUID: existingFile.UUID, diff --git a/go.mod b/go.mod index 84fd0a6d3..82df13a60 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/golang-jwt/jwt/v5 v5.3.1 github.com/google/uuid v1.6.0 github.com/hanwen/go-fuse/v2 v2.9.0 - github.com/internxt/rclone-adapter v0.0.0-20260213125353-6f59c89fcb7c + github.com/internxt/rclone-adapter v0.0.0-20260220172730-613f4cc8b8fd github.com/jcmturner/gokrb5/v8 v8.4.4 github.com/jlaffaye/ftp v0.2.1-0.20240918233326-1b970516f5d3 github.com/josephspurrier/goversioninfo v1.5.0 diff --git a/go.sum b/go.sum index 3f0d52de0..130fb405d 100644 --- a/go.sum +++ b/go.sum @@ -423,8 +423,8 @@ github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyf github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/internxt/rclone-adapter v0.0.0-20260213125353-6f59c89fcb7c h1:r+KtxPyrhsYeNbsfeqTfEM8xRdwgV6LuNhLZxpXecb4= -github.com/internxt/rclone-adapter v0.0.0-20260213125353-6f59c89fcb7c/go.mod h1:vdPya4AIcDjvng4ViaAzqjegJf0VHYpYHQguFx5xBp0= +github.com/internxt/rclone-adapter v0.0.0-20260220172730-613f4cc8b8fd h1:dSIuz2mpJAPQfhHYtG57D0qwSkgC/vQ69gHfeyQ4kxA= +github.com/internxt/rclone-adapter v0.0.0-20260220172730-613f4cc8b8fd/go.mod h1:vdPya4AIcDjvng4ViaAzqjegJf0VHYpYHQguFx5xBp0= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=