nuget - 如何在不下载的情况下获取 Nuget 包的 sha256?
问题描述
我想使用 Curl 来获取给定 Nuget 包和版本的 sha256。我认为这些天这是 Nuget API 的一部分,但是我需要点击什么 URL 才能获取哈希?
解决方案
感谢您的链接,毛里西奥·谢弗。
这是来自 Paket的相关片段:
open System.Net
open System.Xml.Linq
let getDetailsFromNuget name version =
async {
use wc = new WebClient()
let! data =
sprintf "https://www.nuget.org/api/v2/Packages(Id='%s',Version='%s')" name version
|> wc.DownloadStringTaskAsync
|> Async.AwaitTask
let data = XDocument.Parse data
let getAttribute attribute =
let rootNs = XName.Get("entry", "http://www.w3.org/2005/Atom")
let propertiesNs =
XName.Get("properties", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata")
let attributesNs attribute =
XName.Get(attribute, "http://schemas.microsoft.com/ado/2007/08/dataservices")
let properties =
rootNs
|> data.Element
|> fun entry -> entry.Element(propertiesNs)
properties.Element(attributesNs attribute).Value
let packageHash = getAttribute "PackageHash"
let packageHashAlgorithm = getAttribute "PackageHashAlgorithm"
return packageHash, packageHashAlgorithm
}
getDetailsFromNuget "FSharp.Core" "4.3.2"
|> Async.RunSynchronously
|> printfn "%A"
输出:
("CR5/gOr3EXghLOih4N+l8rlM4n5V3Vniv8L8tAeft5+P2QPSpU4CHF0YoTCXUpqfKXRQpvPej70MjHpBfgXJDA==", "SHA512")
PackageHashAlgorithm
应该是"SHA256"
或。"SHA512"
推荐阅读
- javascript - 模拟类似于 GOTO 的命令的标签
- javascript - 推送新对象时,对象中的嵌套数组最后一个元素被删除
- google-api - Google Classroom API 访问要求
- angular - Angular,RxJs,初始化组件的子变量
- node.js - 服务器没有向前端发送正确的响应?
- ruby - 新手 Ruby 问题 - 项目基础计算器
- sql - 由于未找到标识符,存储过程插入表无法正常工作
- java - 使用 Zomato Api 进行改造
- java - 如何在 TestNG 测试套件中最后运行测试
- spring-cloud-config - 从配置服务器读取拆分为多个属性文件的动态配置