使用GitLab API在GitLab项目中上传图像

4

我正在尝试在Gitlab项目中上传图片。根据文档,这不应该是什么难事。我已经尝试将图片作为URL和Base-64表示传递。如果我对Base-64 URL进行编码,会出现一些进展 - 内部服务器错误。有什么建议吗?谢谢!


你是否曾经得到了你的问题的答案?我遇到了同样的问题。 - Dan
上传文件到指定项目,以便在问题或合并请求描述或评论中使用。请注意,这与上传到代码库不同。 - Jay Wick
2个回答

0

由于您没有说明您想如何上传..

使用curl:

curl --request POST --header "PRIVATE-TOKEN: XXXXXXXXXX" --form "file=@dk.png" https://gitlab.example.com/api/v4/projects/5/uploads

5 是你的项目 ID。

GitLab API 文档


0
根据这篇文章: 使用base64编码图像文件 我们可以了解如何将二进制文件转换为包括图像、zip或pickle等在内的base64字符串。 这是我的代码的一部分。希望它有所帮助。
import gitlab
def test_upload_img_to_repo():
    
    gitlab.Gitlab(url=HOST, private_token=PERSONAL_TOKEN)
    project = gl.projects.get(project_id)
    file_path = path.join(path.dirname(__file__), 'test_upload.txt')
    img_path  = path.join(path.dirname(__file__), 'logo.png')
    data = {
        'branch': 'master',
        'commit_message': 'blah blah blah',
        'actions': [
            {
                'action': 'update',
                'file_path': 'upload.txt',
                'content': open(file_path).read(),
            },
            {
                # Binary files need to be base64 encoded
                'action': 'create',
                'file_path': '/folder/logo.png',
                'content': base64.b64encode(open(img_path,'rb').read()).decode(),
                'encoding': 'base64',
            }
        ]
    }

    commit = project.commits.create(data)
    print(commit)
    


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接