diff --git a/API.md b/API.md index 8468b81..3eebc38 100644 --- a/API.md +++ b/API.md @@ -455,9 +455,9 @@ Move or copy a file or folder in the working directory of the app. ### POST /server/{id}/compress?path=path&compress=algorithm&archiveType=archiveType -Compress files/folders in the working directory of the app into a ZIP or TAR archive. +Compress files/folders in the working directory of the app into a ZIP or TAR archive. Support for `tar(.gz/xz/zst)` archives was added in v1.2+. -Support for `tar(.gz/xz/zst)` archives was added in v1.2+. +⚠️ *Info:* The `POST /server/{id}/compress/v2` API is available as well, which is identical to this, but guaranteed to support `tar` archives, and can be used by API clients to ensure archives aren't accidentally created as ZIP files on older Octyne versions. **Request Query Parameters:** diff --git a/endpoints_files.go b/endpoints_files.go index 5a2bab3..ac7a7da 100644 --- a/endpoints_files.go +++ b/endpoints_files.go @@ -354,7 +354,8 @@ func (connector *Connector) registerFileRoutes() { }) // POST /server/{id}/compress?path=path&compress=true/false/zstd/xz/gzip&archiveType=zip/tar - connector.Router.HandleFunc("/server/{id}/compress", func(w http.ResponseWriter, r *http.Request) { + // POST /server/{id}/compress/v2?path=path&compress=true/false/zstd/xz/gzip&archiveType=zip/tar + compressionEndpoint := func(w http.ResponseWriter, r *http.Request) { // Check with authenticator. user := connector.Validate(w, r) if user == "" { @@ -480,7 +481,9 @@ func (connector *Connector) registerFileRoutes() { "archive", clean(r.URL.Query().Get("path")), "archiveType", archiveType, "compression", compression, "files", files) writeJsonStringRes(w, "{\"success\":true}") - }) + } + connector.Router.HandleFunc("/server/{id}/compress", compressionEndpoint) + connector.Router.HandleFunc("/server/{id}/compress/v2", compressionEndpoint) // POST /server/{id}/decompress?path=path connector.Router.HandleFunc("/server/{id}/decompress", func(w http.ResponseWriter, r *http.Request) {