afero icon indicating copy to clipboard operation
afero copied to clipboard

GCSFS new file object doesn't exist

Open fraserdarwent opened this issue 2 years ago • 1 comments

When attempting to create a new file on GCSFS with flags os.O_CREATE|os.O_TRUNC, the resource delete operation throws an error "object doesn't exist"

	if flag&os.O_TRUNC != 0 {
		err = file.resource.obj.Delete(fs.ctx) // Throws an error
		if err != nil {
			return nil, err
		}
		return fs.Create(name)
	}

fraserdarwent avatar May 11 '22 21:05 fraserdarwent

I think a solution is to modify the code to something like this so it only attempts to delete the file on truncate if it exists, but I'm not certain

	if flag&os.O_TRUNC != 0 {
		if found {
			err = file.resource.obj.Delete(fs.ctx)
			if err != nil {
				return nil, err
			}
		}
		return fs.Create(name)
	}

fraserdarwent avatar May 11 '22 22:05 fraserdarwent