如何批量下载 Azure Artifacts 包?
How to Bulk Download Azure Artifacts Packages?
我的组织正在将我们的软件包(NuGet、NPM)迁移到 Azure Artifacts。我们已将大约 50,000 个 NuGet 包 (2GB) 推送到 Azure Artifacts。
有没有办法将我的包从 Azure Artifacts 批量拉取到我的机器或 Azure blob 存储,以防我们对产品不满意?我主要关心提取我们的 NuGet 包,因为我们发布了数千个包。
我知道 但我想知道是否有办法检索我们所有软件包的 zip 文件,或者是否有其他方法批量下载我们所有的软件包。
谢谢!
我们没有批量下载选项,但您自己编写脚本会很容易。
首先,您需要get a PAT。确保 PAT 具有包装(读取)范围。您将使用 PAT 作为密码进行身份验证。您使用的用户名无关紧要。
然后,您需要获取提要中所有包的列表。您可以使用我们的 Get Packages API。
那么,对于NuGet包,协议如下:
- 下载提要 URL(从“连接到提要”对话框,将以
.../v3/index.json
结尾)
- 读取返回的JSON文档,从@type=
PackageBaseAddress/3.0.0
的对象中获取@id属性。这是 PackageBaseAddress。请注意,实际值被视为实现细节。始终从 index.json. 检索地址
- 如果您还没有版本列表,请下载
{PackageBaseAddress}/{PackageName (lowercased)}/index.json
,它将列表作为 JSON 数组(我建议以这种方式获取版本,因为它们已经被标准化)
- 从
{PackageBaseAddress}/{PackageName (lowercase)}/{PackageVersion (normalized)}/{PackageName (lowercase)}.{PackageVersion (normalized)}.nupkg
下载软件包
- 例如
{PackageBaseAddress}/restsharp/106.4.1/restsharp.106.4.1.nupkg
- 请务必遵循重定向,因为该服务实际上会将您从我们的后端存储中下载
对于 npm 包:
- 从“连接到供稿”对话框获取供稿 URL(它将以
.../npm/registry
结尾)
- 下载
{Feed URL}/{PackageName}
(范围包包括范围,例如{Feed URL}/@{Scope}/{PackageName}
)
- 每个版本的下载 URL 都在 JSON 响应中作为版本列出。*.dist.tarball
- 同样,请务必在下载包时处理重定向。
我的组织正在将我们的软件包(NuGet、NPM)迁移到 Azure Artifacts。我们已将大约 50,000 个 NuGet 包 (2GB) 推送到 Azure Artifacts。
有没有办法将我的包从 Azure Artifacts 批量拉取到我的机器或 Azure blob 存储,以防我们对产品不满意?我主要关心提取我们的 NuGet 包,因为我们发布了数千个包。
我知道
谢谢!
我们没有批量下载选项,但您自己编写脚本会很容易。
首先,您需要get a PAT。确保 PAT 具有包装(读取)范围。您将使用 PAT 作为密码进行身份验证。您使用的用户名无关紧要。
然后,您需要获取提要中所有包的列表。您可以使用我们的 Get Packages API。
那么,对于NuGet包,协议如下:
- 下载提要 URL(从“连接到提要”对话框,将以
.../v3/index.json
结尾) - 读取返回的JSON文档,从@type=
PackageBaseAddress/3.0.0
的对象中获取@id属性。这是 PackageBaseAddress。请注意,实际值被视为实现细节。始终从 index.json. 检索地址
- 如果您还没有版本列表,请下载
{PackageBaseAddress}/{PackageName (lowercased)}/index.json
,它将列表作为 JSON 数组(我建议以这种方式获取版本,因为它们已经被标准化) - 从
{PackageBaseAddress}/{PackageName (lowercase)}/{PackageVersion (normalized)}/{PackageName (lowercase)}.{PackageVersion (normalized)}.nupkg
下载软件包- 例如
{PackageBaseAddress}/restsharp/106.4.1/restsharp.106.4.1.nupkg
- 请务必遵循重定向,因为该服务实际上会将您从我们的后端存储中下载
- 例如
对于 npm 包:
- 从“连接到供稿”对话框获取供稿 URL(它将以
.../npm/registry
结尾) - 下载
{Feed URL}/{PackageName}
(范围包包括范围,例如{Feed URL}/@{Scope}/{PackageName}
) - 每个版本的下载 URL 都在 JSON 响应中作为版本列出。*.dist.tarball
- 同样,请务必在下载包时处理重定向。