API 게시글에 이미지 추가하기

예정된 주제에 사진이나 파일을 추가하는 방법은 무엇인가요?

이 문제를 해결하셨나요?

파일을 업로드한 후 파일의 URL을 가져와서 게시해야 합니다.

r = requests.put()
p = "http:"+r.json()['url']

안녕하세요, 나중에 이미지를 저장하기 위해 서드파티 클라우드 베드를 사용해 보고, 서버 공간을 절약할 수 있어서 테마나 게시물에 img 태그를 사용하여 콘텐츠를 구현했습니다.

안녕하세요 @FunnySmile. 아래처럼 img 태그를 사용해 게시글에 이미지를 올리고 싶은데, 이미지가 표시되지 않아요.

<img src="https://unsplash.com/photos/JoZazcPhW5Y" />

도와주실 수 있을까요?

클라우드 베드(이미지 호스팅 서비스)가 제3자 웹사이트에서 호출하는 것을 허용하지 않을 수 있다는 점을 참고하세요. 일반적으로 클라우드 서비스는 베드(이미지)의 주소를 반환하며, 일부는 호출을 허용하지만 일부는 허용하지 않습니다. 허용하는 경우 보통 추가적인 img 태그와 특수한 URL을 제공합니다. 그렇지 않다면, 클라우드 베드가 제3자 호출을 허용하지 않는 것일 수 있습니다. 이 경우 브라우저의 개발자 모드를 활성화한 후 네트워크(Network) 탭을 선택하여 이미지 로드 시 어떤 오류가 발생하는지 확인해 보세요.

html img 태그 없이 이미지의 URL을 그대로 추가하기만 하면 됩니다.

https://unsplash.com/photos/JoZazcPhW5Y

이렇게요

그러면 discourse가 이를 onebox로 변환해 줍니다. 하지만 그 URL은 이미지 링크가 아니라 단순히 unsplash.com 웹사이트의 페이지를 가리키는 링크일 뿐입니다. 실제 이미지 링크를 사용해야 합니다:

https://images.unsplash.com/photo-1658603458978-4a32b8cdadb7?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3272&q=80

API를 사용 중이라면, 게시물 ‘raw’ 필드에 이미지 URL을 포함할 수 있습니다.

안녕하세요 @blake
제안해 주신 대로 시도해 보았습니다. 제 POST 요청 본문은 다음과 같습니다.

POST 요청을 확인해 보니 이미지 대신 링크만 표시됩니다. 브라우저에 해당 링크를 입력하면 이미지는 정상적으로 확인됩니다.

감사합니다.
Chitta

이미지 URL을 별도의 줄에 추가할 수 있나요?

asdfasdfasdf https://stayrightcon.com/wp-content/uploads/2020/05/Stayright-logo_resolution-72ppi.png

asdfasdf

https://stayrightcon.com/wp-content/uploads/2020/05/Stayright-logo_resolution-72ppi.png

저도 같은 것을 찾고 있습니다… 게시물 API에 이미지를 첨부하는 방법입니다. 이미지는 업로드하고 URL을 가져오는 단계를 따랐는데, 어떻게 payload에 URL을 보내야 할까요? raw 필드에 텍스트로 보내면 글자 그대로 전송됩니다. 게시물 API에 이미지 필드도 추가할 수 있는 방법이 있을까요? 도움을 부탁드립니다.

현재 말씀하신 의미를 정확히 이해하지 못해 죄송합니다. 제 후속 해결책은 먼저 제3자 클라우드 이미지 호스팅 서비스를 이용해 이미지를 업로드한 뒤, 이미지 URL 주소를 반환하는 것입니다.

<img src="url" />

맞습니다. 마크다운 링크로 전달하면 됩니다.

![image|581x455](upload://c4MB1Yzppr5Omv68MoJBQINqqiB.png)

아니요. 이 워크플로우는 작성기 UI에서 사용되는 것과 동일하기 때문입니다. 업로드를 위한 API 호출과, 게시물 payload에 URL을 포함하기 위한 API 호출을 각각 두 번 수행해야 합니다.

네 맞습니다. 저는 이렇게 구현했습니다… 단순히
“[image|581x455(upload://c4MB1Yzppr5Omv68MoJBQINqqiB.png)” 을 raw로 post api에 전달하면 됩니다. 여기서

  1. image- 원하는 이름으로 지정
  2. upload://c4MB1Yzppr5Omv68MoJBQINqqiB.png- upload api를 사용하여 이미지를 업로드할 때 받는 shorturl입니다.

단계는 다음과 같습니다: 1) 먼저 /upload.json api를 사용하여 이미지를 업로드해야 합니다.
2) 위 형식의 short url을 ‘raw’ 필드에 다른 post 내용과 함께 전달합니다.

답변 주셔서 감사합니다 @blake