안녕하세요
,
유용한 게시물들(1, 2)을 읽어보았지만, Python에서 API를 사용하여 Discourse에 아바타를 성공적으로 업로드하는 데 필요한 것이 아직 부족한 것 같습니다. 저는 제 Discourse 사이트의 관리자입니다.
좋은 소식: 아래에 표시된 것처럼 Postman에서는 작동합니다.
아쉬운 소식: Python으로 이를 구현하지 못하고 있습니다(시도한 내용에 따라 400 또는 422 오류가 발생합니다). 다음을 시도해 보았습니다:
img_data = requests.get("my_image_url").content
data={
"type": "avatar",
"user_id": user_id,
"synchronous": True,
"file": img_data
}
url = "<my site>/uploads.json"
response = requests.request("POST", url, headers=headers, data=data)
이 코드는 400 오류를 반환합니다. 작동하는지 확인하기 위해 로컬 이미지를 사용하는 것도 시도해 보았습니다:
with open('my_local_image.jpg', "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf8")
data={
"type": "avatar",
"user_id": user_id,
"synchronous": True,
"file": image_b64
}
url = "<my site>/uploads.json"
response = requests.request("POST", url, headers=headers, data=data)
이 코드는 422 오류를 반환합니다:
"failed":"FAILED","message":"undefined method `tempfile\' for #\\u003cString:0x00007f5befda7af8\\u003e"
거의 성공한 것 같은데, API 사용에 대해 아직 초보적인 수준이라 정확한 방향을 잡지 못하고 있습니다. 올바른 방향으로의 힌트가 주시면 감사하겠습니다!
