使用Nexus API和PowerShell上传工件

问题描述 投票:0回答:1

如果我想使用Nexus API将工件上传到存储库,有人知道请求正文是什么样吗?

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("admin123:password123"))
$header = @{authorization = "Basic $token" }

$body = @{
    'raw.dictionary' = '/TestArtifact/Prod/'
    'raw.asset1' = 'c:\temp\lenovo.zip'
    'raw.asset1.filename' = 'lenovo.zip'

} | Convertto-Json

Invoke-RestMethod -Method POST -Uri 'http://xx.xx.xxx.xxx:8081/service/rest/v1/components?repository=TestRepo' -ContentType 'application/json'-Body $body -Headers $header

我得到'Invoke-RestMethod:响应状态代码未指示成功:415(不受支持的媒体类型)'

powershell api nexus nexus3
1个回答
0
投票

让我们尝试解决这个问题。

该命令看起来像您正在尝试执行的是

curl -v -u admin:admin123 -X POST 'http://localhost:8081/service/rest/v1/components?repository=maven-releases' -F maven2.groupId=com.google.guava -F maven2.artifactId=guava -F maven2.version=24.0-jre -F [email protected] -F maven2.asset1.extension=jar -F [email protected] -F maven2.asset2.classifier=sources -F maven2.asset2.extension=jar

似乎我们遇到的主要问题是您没有将文件转换为字节。

-F @[FileName]是二进制文件

唯一需要做的更改就是更改

'raw.asset1' = 'c:\temp\lenovo.zip'

'raw.asset1' = [System.IO.File]::ReadAllBytes("c:\temp\lenovo.zip")
© www.soinside.com 2019 - 2024. All rights reserved.