如何使用Python的urllib.urlretrieve从带有令牌的身份验证的GitLab下载图像

时间:2019-05-12 14:47:49

标签: python gitlab urllib urlretrieve

我正在研究一个脚本,以通过GitLab CI将GitLab问题(在我的情况下为)永久保存为带有标签的存储库中的Markdown文件和PDF格式的已编译需求文档。此外,该脚本需要下载所有附加的源代码(图像,图表,PDF文件等),因此也可以对其进行版本控制。

该脚本是用Python 3.6编写的,并使用python-gitlab来使用GitLab API v4

请求问题描述文本后,将对其进行扫描以查找以下格式的图像URL:![...](/uploads/<hash>/<filename>.<ext>)。每个相对路径都由GitLab的主机URL开头,并移交给urllib.urlretrieve

运行请求时,由于未通过身份验证,因此出现HTTP 401错误。

    for image in images:
        downloadURL = URL + image
        imagePath =   "" + image
        print("  downloading '{fromURL}' to '{toPath}'".format(fromURL=downloadURL, toPath=imagePath))
        try:
            urlretrieve(downloadURL, imagePath)
        except HTTPError as ex:
            print(ex)
        except FileNotFoundError as ex:
            print(ex)

GitLab通过令牌使用身份验证。如何在urllib中使用这种身份验证方法?

例如当我使用Insomnia直接执行对GitLabs API的JSON请求时,我使用Private-Token HTTP标头进行身份验证。我可以将此标头添加到urllib通话中吗?

0 个答案:

没有答案