我有一个python脚本,我正在尝试使用python请求库将资产上传到nexus3。下面显示的代码适用于nexus2,但由于nexus3的rest api发生了变化,我发现很难将资产上传到nexus3。
我修改了我的有效负载以包含存储库和asset1文件,但它不起作用。我还尝试包含头部,并将有效负载转换为json格式,但没有成功。
任何线索都将不胜感激。
import requests
filename = 'content.zip'
url = "https://nexus3-url/repos/service/rest/v1/components?repository=maven-repo"
files = { 'filename': open(filename, 'rb') }
payload = {
'groupId' : 'group.id',
'asset1.extension' : 'zip',
'version' : '1.0.0',
'artifactId' : 'test',
'generate-pom' : 'false'
}
response = requests.post(url,
allow_redirects = False,
auth = requests.auth.HTTPBasicAuth(username, password),
files = files,
data = payload,
timeout = 20,
verify = cert,
)我得到的错误消息是requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url:
发布于 2019-09-10 16:21:15
找到了解决方案。由于nexus3的GAV参数不同,因此应该采用这种方式。
import requests
filename = 'content.zip'
payload = {
'maven2.groupId': (None, 'group.id'),
'maven2.artifactId': (None, 'test'),
'maven2.version': (None, '1.0.0'),
'maven2.generate-pom': (None, 'false'),
'maven2.packaging': (None, 'zip'),
'maven2.asset1': (filename, open(filename, 'rb')),
'maven2.asset1.extension': (None, 'zip'),
}
params = (
('repository', 'maven-repo'),
)
url = "https://nexus3-url/repos/service/rest/v1/components
response = requests.post(url,
allow_redirects = False,
auth = requests.auth.HTTPBasicAuth(username, password),
params = params,
files = payload,
timeout = 20,
verify = cert,
)https://stackoverflow.com/questions/57865098
复制相似问题