Files
open-proxy/proto.go

55 lines
1020 B
Go

package main
import (
"fmt"
"os"
"strconv"
"strings"
)
const (
defaultAddr = "127.0.0.1:7777"
defaultMaxSize = 100 << 20 // 100 MiB
tokenHeader = "X-Open-Token"
fileNameHeader = "X-Open-Filename"
pathHeaderField = "X-Open-Host-Path"
)
func envAddr() string {
if v := os.Getenv("OPEN_PROXY_ADDR"); v != "" {
return v
}
return defaultAddr
}
func envToken() (string, error) {
if v := os.Getenv("OPEN_PROXY_TOKEN"); v != "" {
return v, nil
}
path := os.Getenv("OPEN_PROXY_TOKEN_FILE")
if path == "" {
return "", nil
}
b, err := os.ReadFile(path)
if err != nil {
return "", fmt.Errorf("read OPEN_PROXY_TOKEN_FILE %q: %w", path, err)
}
token := strings.TrimRight(string(b), "\r\n")
if token == "" {
return "", fmt.Errorf("OPEN_PROXY_TOKEN_FILE %q is empty", path)
}
return token, nil
}
func envMaxSize() int64 {
if v := os.Getenv("OPEN_PROXY_MAXSIZE"); v != "" {
if n, err := strconv.ParseInt(v, 10, 64); err == nil && n > 0 {
return n
}
}
return defaultMaxSize
}