为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
跃然一笑 2023-08-07 11:08:03
从 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 是否在代理服务器中保存私有回购代码?
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

来自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 之类的东西来双重确保您的私有模块可以直接访问。


查看完整回答
反对 回复 2023-08-07
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信