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 push吗?嗯,什么都没有改变。

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将会变得越来越容易。

这篇文章最初发表在Bintray的博客上。