使用騰訊雲提供的針對Nuget包管理器的快取加速服務

張善友發表於2019-07-29

繼阿里巴巴開源映象站(https://opsx.alibaba.com/)、華為雲映象站點(https://mirrors.huaweicloud.com/ )之後,騰訊也已於近日上線了類似的服務,官方名稱為騰訊雲軟體源(Tencent Open Source Mirror Site),為國內開發者提供新的軟體映象源選擇[https://mp.weixin.qq.com/s/T43MZSDiN04EdgirBif1GQ]。與國內其他同類服務相似,此開源映象站提供了主流的Linux發行版安裝映象下載以及軟體源映象,還有幾大語言程式包的倉庫服務,比如Node.js的npm倉庫和Python的pip倉庫以及dotnet的nuget 倉庫。Nuget 映象地址是(https://mirrors.cloud.tencent.com/nuget/)。

在Visual Studio 2013、2015、2017、2019 中,使用的是Nuget包管理器對第三方元件進行管理升級的。而且 Nuget 是我們使用.NET Core的一項基礎設施,.NET的軟體包管理器NuGet.org是一項面向全球使用者搭建的服務,不論使用者身在何處,NuGet.org都應該有能力提供高效能的服務。2017 年微軟針對中國訪問Nuget服務的訪問慢的問題進行了優化,把Blob儲存備份到中國本地,並使用本地CDN服務商來處理軟體包下載請求,具體參考 https://blog.nuget.org/20170907/Changes-to-NuGet-dot-org-service-management-and-performance-improvements-in-China.html。

Nuget包的API分為搜尋、註冊和儲存三大類。其中使用最為頻繁的是註冊和儲存兩類API。 Nuget映象包含了快取的反向代理來加速這些API。 使用這個映象可以在騰訊雲和在應用開發可實現如下加速效果:

  1. 對於包的搜尋無加速效果。搜尋元件包是由額外的域名提供的。

  2. 安裝、解除安裝、升級包等完全加速。所有包資訊均按天快取在伺服器上,每天每個包第一次訪問為代理訪問,隨後均為本地訪問

  3. 包安裝、升級下載檔案完全加速。每個包的每個版本第一次下載微代理訪問,之後所有同樣版本、ID的包均為本地訪問

使用方法:

在Visual Studio中點選“工具”-“選項”,左側找到“Nuget包管理器”-“程式包源”,確認您的列表中包含有V3版的APIhttps://api.nuget.org/v3/index.json)。 騰訊雲的加速服務僅支援V3版包源,如果沒有這個記錄,那麼您可能無法使用加速服務,請升級您的Nuget包管理器

5624069de6df7825bc826bdfd347e43

點選新增按鈕,然後在下方輸入資訊:

輸入後,點選更新按鈕更新,最後確認並關閉配置。

上面設定後,Nuget的配置檔案裡就加入了相關配置,檔案位置在:C:\Users\geffzhang\AppData\Roaming\NuGet\Nuget.config ,其中geffzhang 是我的電腦賬號,更換你的賬號,下面是我的Nuget 配置樣例:

image

上述操作我們都是在windows 10 上的,特別是做.NET Core的開發,很多同學喜歡用Mac,如果是Mac 與 Linux 中的路徑是,那麼路徑是在 ~/.nuget/NuGet/NuGet.Config。

注:NuGet.Config 在 Windows 中路徑是 %appdata%\NuGet\NuGet.Config ,在 Mac 與 Linux 中的路徑是 ~/.nuget/NuGet/NuGet.Config ,如果沒有 NuGet.Config 檔案,可以執行 dotnet restore 命令生成。

上面的配置是全域性的配置, 如果我們的專案使用的是在騰訊雲上持續整合可以在專案中引入Nuget.config來完成:

image

當你使用dotnet restore 時也可以通過 –s 指定使用騰訊雲映象,我們就用這種方法來測試下騰訊雲的映象的速度,我用兩個專案做了簡單測試,測試結果表明為騰訊雲的映象的速度還是要比官方的要快。

相關文章