猿问

私有存储库是否缓存在 proxy.golang.org 中?

从 go 1.13 开始,go 模块使用https://proxy.golang.org/来缓存存储库。考虑到我在 github.com/Ihtkas/libraries 中有一个私有存储库作为 go 模块,并且我在另一个本地 go 代码 sort.go 中导入了该模块。当我使用 GIT_TERMINAL_PROMPT=1 构建本地代码时,go 使用本地存储库的登录凭据构建 sort.go。在这种情况下,go 是否将私有存储库缓存在 proxy.golang.com 中?当其他人导入相同的私有包并使用有效凭据访问该包时,私有存储库中的包是否由 proxy.golang.com 提供,并且仅将身份验证转发到 github.com?我的确切问题是

无论如何,go in 是否在代理服务器中保存私有回购代码?


跃然一笑
浏览 87回答 1
1回答

ITMISS

来自https://index.golang.org:如果我不GOPRIVATE从这些服务设置和请求私有模块,会发生什么泄漏? 代理和校验和数据库协议仅将模块路径和版本发送到远程服务器。如果您请求私有模块,镜像将像任何 Go 用户一样尝试下载它,并以同样的方式失败。有关失败请求的信息不会在任何地方发布。请求的唯一痕迹将存在于内部日志中,该日志受隐私政策的约束。按照https://golang.org/cmd/go/#hdr-Module_configuration_for_non_public_modulesGOPRIVATE中所述进行工作GOPRIVATE 环境变量控制 go 命令认为哪些模块是私有的(不可公开使用),因此不应使用代理或校验和数据库。该变量是模块路径前缀的逗号分隔的 glob 模式列表(采用 Go 的 path.Match 语法)。例如,GOPRIVATE=*.corp.example.com,rsc.io/private导致 go 命令将路径前缀与任一模式匹配的任何模块视为私有模块,包括 git.corp.example.com/xyzzy、rsc.io/private 和 rsc.io/private/quux。总结一下:如果它是私有模块,代理服务会尝试访问它,但会失败。我假设 Go 然后会回退到直接访问它,完全绕过代理。为了防止这种往返,请将您的私有存储库添加到 GOPRIVATE,如果您仍然担心它,请使用wireshark 之类的东西来双重确保您的私有模块可以直接访问。
随时随地看视频慕课网APP

相关分类

Go
我要回答