type webdavFS struct {
collfs arvados.CollectionFileSystem
writing bool
- reading bool
+ // webdav PROPFIND reads the first few bytes of each file
+ // whose filename extension isn't recognized, which is
+ // prohibitively expensive: we end up fetching multiple 64MiB
+ // blocks. Avoid this by returning EOF on all reads when
+ // handling a PROPFIND.
+ alwaysReadEOF bool
}
func (fs *webdavFS) makeparents(name string) {
- dir, name := path.Split(name)
+ dir, _ := path.Split(name)
if dir == "" || dir == "/" {
return
}
// have 405.
f = writeFailer{File: f, err: errReadOnly}
}
- if !fs.reading {
- // webdav PROPFIND reads the first few bytes of each
- // file whose filename extension isn't recognized,
- // which is prohibitively expensive: we end up
- // fetching multiple 64MiB blocks. Avoid this by
- // returning EOF on all reads when handling a
- // PROPFIND.
+ if fs.alwaysReadEOF {
f = readEOF{File: f}
}
return