mirror of
https://github.com/minio/minio.git
synced 2025-04-10 06:30:07 -04:00
Fix minio distributed setup to properly work on windows (#5152)
On windows having a preceding "/" will cause problems, if the command line already has C:/<export-folder/ in it. Final resulting path on windows might become C:/C:/ this will cause problems of starting minio server properly in distributed mode on windows. As a special case make sure to trim off the separator. NOTE: It is also perfectly fine for windows users to have a path without C:/ since at that point we treat it as relative path and obtain the full filesystem path as well. Providing C:/ style is necessary to provide paths other than C:/, such as F:/, D:/ etc. Another additional benefit here is that this style also supports providing UNC paths as well. Fixes #5136
This commit is contained in:
parent
a79a7e570c
commit
d10679866c
@ -22,6 +22,7 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -130,6 +131,26 @@ func NewEndpoint(arg string) (ep Endpoint, e error) {
|
|||||||
return ep, fmt.Errorf("empty or root path is not supported in URL endpoint")
|
return ep, fmt.Errorf("empty or root path is not supported in URL endpoint")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// On windows having a preceding "/" will cause problems, if the
|
||||||
|
// command line already has C:/<export-folder/ in it. Final resulting
|
||||||
|
// path on windows might become C:/C:/ this will cause problems
|
||||||
|
// of starting minio server properly in distributed mode on windows.
|
||||||
|
// As a special case make sure to trim the separator.
|
||||||
|
|
||||||
|
// NOTE: It is also perfectly fine for windows users to have a path
|
||||||
|
// without C:/ since at that point we treat it as relative path
|
||||||
|
// and obtain the full filesystem path as well. Providing C:/
|
||||||
|
// style is necessary to provide paths other than C:/,
|
||||||
|
// such as F:/, D:/ etc.
|
||||||
|
//
|
||||||
|
// Another additional benefit here is that this style also
|
||||||
|
// supports providing \\host\share support as well.
|
||||||
|
if runtime.GOOS == globalWindowsOSName {
|
||||||
|
if filepath.VolumeName(u.Path[1:]) != "" {
|
||||||
|
u.Path = u.Path[1:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
isLocal, err = isLocalHost(host)
|
isLocal, err = isLocalHost(host)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ep, err
|
return ep, err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user