我注意到在web.config中它要求Azure的详细信息,但代码似乎建议你可以选择’FileSystem’作为存储后端.
我的问题是:
>如果我选择’FileSystem’,我该如何配置目标文件夹?
>我可以将存储引擎指向sql Server的内部实例吗?
我试图避免使用文件系统,因为这是我们现在使用的NuGet Server,它非常慢.一些开发人员喜欢打包并推送每一个成功的构建,因此可伸缩性非常重要.
我希望这里的任何答案也能帮助别人.对于背景,这是设置您自己的NuGet gallery的一个很好的链接.遗憾的是,作者省略了与实际包存储有关的所有细节:https://github.com/NuGet/NuGetGallery/wiki/Hosting-the-NuGet-Gallery-Locally-in-IIS
解决方法
<appSettings> <add key="gallery:PackageStoreType" value="FileSystem" /> <add key="gallery:FileStorageDirectory" value="C:\Path\To\Packages" /> </appSettings>
指向不同的sql Server:
<connectionStrings> <add name="nugetgallery" connectionString="Data Source=sqlSERVERNAME;Initial Catalog=nugetgallery;Integrated Security=sspI" providerName="System.Data.sqlClient" /> </connectionStrings>
如果要将包作为BLOB存储在sql Server中,则必须对代码进行一些更改.
首先,创建一个名为sqlServerFileStorageService的类并实现IFileStorageService.该接口有几种方法.重要的是GetFile()和SaveFile().组合folderName和fileName将创建可在数据库表中使用的唯一键.
您可以使用相同的连接字符串nugetgallery或为您的数据访问添加新的连接字符串.
然后,将项添加到名为sqlServer的枚举PackageStoreType中.
在ContainerBinding.cs中,为PackageStoreType.sqlServer添加一个大小写以绑定到sqlServerFileStorageService.
现在,NuGet gallery应该创建一个sqlServerFileStorageService,所有获取和保存将使用您的类将blob存储在sql Server中.
顺便说一句:我的基础是粗略看一下代码.可能还有一两步,但这些看起来就像您需要关注的主要领域.
希望有所帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。