feat(webdav): delete privacy header and optimize 302 (#2534)

* fix: delete set-cookie from sharepoint webdav response header

* fix: avoid two redirects when using webdav

* fix: return the correct Content-Type instead of just `application/octet-stream`

* feat: webdav backend localOnly -> proxyOnly
This commit is contained in:
SiHuaN
2022-11-30 20:52:33 +08:00
committed by GitHub
parent 83644dab85
commit f9788ea7cf
5 changed files with 69 additions and 22 deletions

View File

@ -73,24 +73,14 @@ func (d *WebDav) List(ctx context.Context, dir model.Obj, args model.ListArgs) (
//}
func (d *WebDav) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
callback := func(r *http.Request) {
if args.Header.Get("Range") != "" {
r.Header.Set("Range", args.Header.Get("Range"))
}
if args.Header.Get("If-Range") != "" {
r.Header.Set("If-Range", args.Header.Get("If-Range"))
}
}
reader, header, err := d.client.ReadStream(file.GetPath(), callback)
url, header, err := d.client.Link(file.GetPath())
if err != nil {
return nil, err
}
link := &model.Link{Data: reader}
if header.Get("Content-Range") != "" {
link.Status = 206
link.Header = header
}
return link, nil
return &model.Link{
URL: url,
Header: header,
}, nil
}
func (d *WebDav) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) error {

View File

@ -16,7 +16,7 @@ type Addition struct {
var config = driver.Config{
Name: "WebDav",
LocalSort: true,
OnlyLocal: true,
OnlyProxy: true,
DefaultRoot: "/",
}