Azure DevOps API图片上传成功但显示破碎白块求助
Azure DevOps API上传图片显示异常的解决办法
你通过POST请求调用Azure DevOps工作项附件API上传图片,请求地址为:https://dev.azure.com/{organization}/{project}/_apis/wit/attachments?uploadType=Simple&fileName={filename}&api-version=5.0
请求头设置如下:
headers = { "Accept": "application/json", "Content-Size": str(os.path.getsize(file_path)), "Content-Type": "application/octet-stream", }
请求返回成功且拿到图片链接,但图片显示为破碎的白色方块,可按以下步骤排查解决:
校验Content-Size的准确性
依赖os.path.getsize获取的磁盘文件大小可能和实际上传的内容长度不一致(比如文件读取前被修改)。建议读取文件内容后直接取内容长度作为Content-Size值:with open(file_path, 'rb') as f: file_content = f.read() headers["Content-Size"] = str(len(file_content)) # 发送请求时使用file_content作为请求体确保上传的是原始二进制内容
必须以二进制模式读取文件,且直接发送原始二进制数据,禁止将二进制内容转换为字符串后再上传,否则会导致文件损坏。尝试更新API版本
当前使用的api-version=5.0可能存在兼容性问题,尝试更换为更高版本(如7.1-preview.3),修改URL中的api-version参数后重新测试。检查授权完整性
确认请求头包含正确的Authorization字段,使用PAT令牌时格式应为:import base64 pat_token = "你的PAT令牌" headers["Authorization"] = "Basic " + base64.b64encode(b":" + pat_token.encode()).decode()授权不完整可能导致文件上传不完整,进而显示异常。
验证文件合规性
Azure DevOps默认限制单个附件最大为100MB,若文件超出限制会导致上传不完整。同时确认图片格式为JPG、PNG等支持的类型。
内容的提问来源于stack exchange,提问作者Steph
相关产品推荐
相关产品推荐

