6通过Bintray分发商用NuGet包的原因

更新:自2021年5月1日起,Bintray服务将不再可用(ConanCenter和JCenter不受影响)中心弃用博客

在。net上开发?那么,很可能你对NuGet Gallery并不陌生。这是一个查找公共NuGet包的好地方。但是,它是托管和分发您自己的私有包的最佳场所吗?随着最近对NuGet的原生支持的增加,你现在可以将你的NuGet客户端指向Bintray,并透明地使用它作为NuGet包的下载源。在这篇文章中,我将展示Bintray是如何补充NuGet Gallery的,以及它为私有和公共NuGet软件包的商业分发提供的好处。

带有细粒度访问控制的隐私

使用Bintray上的专业帐户,您可以创建私人存储库并设置具有不同权限的用户组根据您想要提供给每个团队的访问权限。使用密钥和权利,您可以在任何粒度级别上提供没有Bintray帐户访问权限的外部用户,从整个存储库到单个工件。

元数据

在Bintray上,每个包裹都附有各种元数据可以用来搜索和下载包。这些包括所有者、包使用的开源许可证、到可以找到包源代码的版本控制的链接,甚至是用户定义的属性等等。

快速下载

Bintray部署在美国、欧洲和亚洲的集群上,并通过快速CDN (Akamai和Cloudfront)提供超快速下载。

丰富的统计信息和日志

丰富的统计数据提供任何时间段内的详细下载信息,实时日志提供关于谁在访问您的包的详细信息。

与Artifactory集成

Bintray的严格与Artifactory集成意味着您可以完全自动化从开发到发布的。net开发管道。

全球配送中心

Bintray可以满足所有包类型的企业分发需求。除了NuGet, Bintray还提供了对Docker、Debian、Maven、RPM和Vagrant包的本地支持。这意味着Bintray维护特定于这些包类型的元数据,并且可以透明地与相应的客户端一起工作。

它是如何工作的?

这真的很简单。

首先,创建一个存储库,并将其类型指定为NuGet。

创建NuGet存储库

现在,您需要做的就是将NuGet客户端或Visual Studio指向Bintray上的新存储库。这也很简单,Bintray甚至会告诉你怎么做。在新的存储库页面上,只需单击Set Me Up。为了可读性,在这篇文章中,我将使用NuGet客户端。

设置NuGet存储库

所以,就像setup Me Up对话框显示的那样,要配置NuGet客户端与Bintray一起工作,你需要将Bintray添加到客户端的源列表中:

添加-Name Bintray -Source https://api.bintray.com/nuget/jaycroaker/MyNugetRepo -UserName -Password

如您所见,您需要包含您的Bintray用户名和API密匙

然后,你需要在NuGet客户端启用Bintray API密钥的使用:

nuget setapikey : -Source Bintray

现在,您已经准备好将包从NuGet客户端直接部署到bintray。举个例子,假设您想上传一个您创建的名为MyLogger的日志工具(是的,我尽量保持简单)。你习惯使用吗nuget推?嗯,什么都没有改变。

nuget push MyLogger.1.0.0.0。nupkg -来源https://api.bintray.com/nuget/jaycroaker/MyNugetRepo

现在,您应该能够在新的NuGet存储库中看到您的包,以及您分配的版本。

解析NuGet包

用NuGet客户端从Bintray解析NuGet包也很简单:

nuget安装MyLogger -Source https://api.bintray.com/nuget/jaycroaker/MyNugetRepo

正如您所看到的,一旦您将Bintray添加为您的NuGet客户机的源代码,您就可以安装就像你在使用NuGet Gallery一样透明。由于Bintray是一个通用的发布中心,当使用Docker、Debian、RPM、Maven和Vagrant使用相应的客户端时,您可以轻松地从Bintray中推送和拉取这些包类型。使用Bintray上的通用存储库,您可以以同样的易用性托管通用发行版,如安装程序或数据文件。随着我们继续添加对越来越多的包类型的支持,使用Bintray将会变得越来越容易。