From d326ba52e950bcccee1ef7d2c725dbb84919daef Mon Sep 17 00:00:00 2001 From: jiuker <2818723467@qq.com> Date: Wed, 5 Jun 2024 23:44:53 +0800 Subject: [PATCH] feat: support batchJob for windows (#19877) --- .github/workflows/vulncheck.yml | 2 +- cmd/batch-handlers.go | 2 +- cmd/batch-job-common-types.go | 10 ++++++++++ cmd/bucket-listobjects-handlers.go | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/vulncheck.yml b/.github/workflows/vulncheck.yml index d12a20046..445257505 100644 --- a/.github/workflows/vulncheck.yml +++ b/.github/workflows/vulncheck.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.22.4 check-latest: true - name: Get official govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@latest diff --git a/cmd/batch-handlers.go b/cmd/batch-handlers.go index 9375f9dce..2126de8f2 100644 --- a/cmd/batch-handlers.go +++ b/cmd/batch-handlers.go @@ -1633,7 +1633,7 @@ func (a adminAPIHandlers) StartBatchJob(w http.ResponseWriter, r *http.Request) return } - job.ID = fmt.Sprintf("%s:%d", shortuuid.New(), GetProxyEndpointLocalIndex(globalProxyEndpoints)) + job.ID = fmt.Sprintf("%s%s%d", shortuuid.New(), getBatchJobIDSeparator(), GetProxyEndpointLocalIndex(globalProxyEndpoints)) job.User = user job.Started = time.Now() diff --git a/cmd/batch-job-common-types.go b/cmd/batch-job-common-types.go index 83e1c554b..661bc8628 100644 --- a/cmd/batch-job-common-types.go +++ b/cmd/batch-job-common-types.go @@ -19,6 +19,7 @@ package cmd import ( "fmt" + "runtime" "strings" "time" @@ -288,3 +289,12 @@ func (s *BatchJobSize) UnmarshalYAML(unmarshal func(interface{}) error) error { *s = BatchJobSize(sz) return nil } + +// getBatchJobIDSeparator - returns the separator to be used in the batch job ID +// windows requires `_` as the separator `:` will be an invalid one +func getBatchJobIDSeparator() string { + if runtime.GOOS == globalWindowsOSName { + return "_" + } + return ":" +} diff --git a/cmd/bucket-listobjects-handlers.go b/cmd/bucket-listobjects-handlers.go index 1adb198bb..b8ae58688 100644 --- a/cmd/bucket-listobjects-handlers.go +++ b/cmd/bucket-listobjects-handlers.go @@ -231,7 +231,7 @@ func parseRequestToken(token string) (subToken string, nodeIndex int) { if token == "" { return token, -1 } - i := strings.Index(token, ":") + i := strings.Index(token, getBatchJobIDSeparator()) if i < 0 { return token, -1 }