Skip to content
This repository has been archived by the owner on Jan 18, 2021. It is now read-only.

Commit

Permalink
Add flag for disabling TUS in capabilities
Browse files Browse the repository at this point in the history
  • Loading branch information
Vincent Petry committed Jun 2, 2020
1 parent 699f3c4 commit 4372c09
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 15 deletions.
37 changes: 22 additions & 15 deletions pkg/command/frontend.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,24 @@ func Frontend(cfg *config.Config) *cli.Command {
desktopRedirectURIs[port] = fmt.Sprintf("http://localhost:%d", (port + 1024))
}

filesCfg := map[string]interface{}{
"private_links": false,
"bigfilechunking": false,
"blacklisted_files": []string{},
"undelete": true,
"versioning": true,
}

if !cfg.Reva.UploadDisableTus {
filesCfg["tus_support"] = map[string]interface{}{
"version": "1.0.0",
"resumable": "1.0.0",
"extension": "creation,creation-with-upload",
"http_method_override": cfg.Reva.UploadHttpMethodOverride,
"max_chunk_size": int(cfg.Reva.UploadMaxChunkSize),
}
}

rcfg := map[string]interface{}{
"core": map[string]interface{}{
"max_cpus": cfg.Reva.Users.MaxCPUs,
Expand Down Expand Up @@ -108,6 +126,7 @@ func Frontend(cfg *config.Config) *cli.Command {
"chunk_folder": "/var/tmp/reva/chunks",
"files_namespace": cfg.Reva.OCDav.DavFilesNamespace,
"webdav_namespace": cfg.Reva.OCDav.WebdavNamespace,
"disable_tus": cfg.Reva.UploadDisableTus,
},
"ocs": map[string]interface{}{
"config": map[string]interface{}{
Expand All @@ -117,6 +136,7 @@ func Frontend(cfg *config.Config) *cli.Command {
"contact": "admin@localhost",
"ssl": "false",
},
"disable_tus": cfg.Reva.UploadDisableTus,
"capabilities": map[string]interface{}{
"capabilities": map[string]interface{}{
"core": map[string]interface{}{
Expand All @@ -137,21 +157,8 @@ func Frontend(cfg *config.Config) *cli.Command {
"supported_types": []string{"SHA256"},
"preferred_upload_type": "SHA256",
},
"files": map[string]interface{}{
"private_links": false,
"bigfilechunking": false,
"blacklisted_files": []string{},
"undelete": true,
"versioning": true,
"tus_support": map[string]interface{}{
"version": "1.0.0",
"resumable": "1.0.0",
"extension": "creation,creation-with-upload",
"http_method_override": cfg.Reva.UploadHttpMethodOverride,
"max_chunk_size": int(cfg.Reva.UploadMaxChunkSize),
},
},
"dav": map[string]interface{}{},
"files": filesCfg,
"dav": map[string]interface{}{},
"files_sharing": map[string]interface{}{
"api_enabled": true,
"resharing": true,
Expand Down
1 change: 1 addition & 0 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@ type Reva struct {
// chunking and resumable upload config (TUS)
UploadMaxChunkSize int
UploadHttpMethodOverride string
UploadDisableTus bool
}

// Tracing defines the available tracing configuration.
Expand Down
7 changes: 7 additions & 0 deletions pkg/flagset/frontend.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,13 @@ func FrontendWithConfig(cfg *config.Config) []cli.Flag {
},

// Chunking
&cli.BoolFlag{
Name: "upload-disable-tus",
Value: false,
Usage: "Tells clients to not use TUS by disabling the capability (this doesn't disable the endpoints)",
EnvVars: []string{"REVA_FRONTEND_UPLOAD_DISABLE_TUS"},
Destination: &cfg.Reva.UploadDisableTus,
},
&cli.IntFlag{
Name: "upload-max-chunk-size",
Value: 0,
Expand Down

0 comments on commit 4372c09

Please sign in to comment.