istio

Форк
0
/
common.go 
40 строк · 1.2 Кб
1
// Copyright Istio Authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package util
16

17
import (
18
	"fmt"
19
	"net/url"
20
	"strings"
21

22
	"istio.io/istio/pkg/log"
23
)
24

25
var scope = log.RegisterScope("util", "util")
26

27
// IsFilePath reports whether the given URL is a local file path.
28
func IsFilePath(path string) bool {
29
	return strings.Contains(path, "/") || strings.Contains(path, ".")
30
}
31

32
// IsHTTPURL checks whether the given URL is a HTTP URL.
33
func IsHTTPURL(path string) (bool, error) {
34
	u, err := url.Parse(path)
35
	valid := err == nil && u.Host != "" && (u.Scheme == "http" || u.Scheme == "https")
36
	if strings.HasPrefix(path, "http") && !valid {
37
		return false, fmt.Errorf("%s starts with http but is not a valid URL: %s", path, err)
38
	}
39
	return valid, nil
40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.