本鱼拟成立工作室承接项目开发/软件定制/云设施开发运维/办公设备技术支持等,如您有相关需求,欢迎来询 | ::博客文章推荐::

开源【针对Nuget包管理器的缓存加速服务】

: 原创作品 木魚 5546℃ 1评论
之前曾经写过这么个玩意儿:提供针对Nuget包管理器的缓存加速服务,随手写的东西,也不复杂……所以本来并没有想过要开源。后来有朋友留言说希望能开源,所以整理了下放在这里。

在Visual Studio 2013、2015中,使用的是Nuget包管理器对第三方组件进行管理升级的。这个东东就类似于NodeJS中的npm。
但是很可惜的是官方的nuget服务器是国外的服务器,由于种种众所周知以及客观原因,nuget包管理器在国内使用向来很慢。

原理介绍&使用说明

使用说明 GITHUB开源地址

项目说明

项目是一个简单的Web项目,使用了一个自定义的HttpHandler捕获所有请求,并将对应路径的文件下载并缓存。
对于索引信息和API信息文件(*.JSON),在缓存并返回前,需要替换相对应的的地址(比如把api.nuget.org替换为nugetcache.nuget.org),因此针对部分搜索请求很难提供加速效果。

同时,缓存时会保存时间戳以及相对应的数据,会按天做时间戳校验,这里会使用ETag等信息提交源服务器做校验,因此设计上可能比官方的更好(官方并没有提交这些校验,始终会要求服务器返回当前的所有信息)。
对于包文件(*.nupkg),不会做校验,因为Nuget官方地址不同版本号的包地址是不同的,并且Nuget目前并不允许修改或重新上传包,因此没有检测同一地址包更新的必要。

开发平台说明

项目使用VS2015开发,基于.NET 4.5平台。源码未针对低版本VS的编译做检测,如果发现语法或部分地方错误,除非必要,还请自行修正。

另外,由于运行方式的制约,不建议将此服务和其它站点混合使用。

最后,如果可以的话,建议直接使用我提供的服务即可,参见之前的博客说明。

喜欢 (7)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 貌似只能VS2015才能用,2013的版本是2.8.7

    望月2015-12-01 09:13 回复