繁体   English   中英

使用 gitlab API 在 gitlab 项目中上传图片

[英]Upload image in gitlab project using gitlab API

我正在尝试在 gitlab 的项目中上传图像。 根据文档,它不应该是火箭科学。 我试图将图像作为 url 和 base-64 表示传递。 如果我对 base-64 URL 进行编码,则会有一点进展 - 内部服务器错误。 有任何想法吗? 谢谢!

既然你没有提到你想如何上传..

带卷曲:

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

5 是您的项目的 id。

gitlab api 文档

根据这篇文章: 使用 base64 编码图像文件

我们可以理解如何将二进制文件转换为 base64 字符串,包括图像、zip 或 pickle 等。这是我的代码的一部分。 希望它有帮助。

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)
    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM