오늘 아침 밸리를 돌아다니다 재미있는 글 하나를 발견했습니다.

'api 파일전송...'

이글루스 API 즉, blogger APIMetaWeblog API를 이용해서

파일 전송이 가능한 것인가? 하는 글이었습니다.

 

현재 이 글을 쓰고 있는 프로그램인

Windows Live Writer를 비롯해서

다른 프로그램을 통해 그림 파일은 올라간다는 것을 확인했습니다.

그렇지만 다른 파일 형식은 없어 써보지 않았습니다.

 

따라서 제가 만든 테스트 파일로 실험(?)해보기로 했습니다.

쓰여진 라이브러리는 ws-xmlrpc입니다.

그리고 MetaWeblog API를 이용했습니다.

 

먼저 그림파일입니다.

media type은 'image/jpeg'입니다.

주소가 날라왔습니다.

http://nosyu.pe.kr/blog/data/3610805/001.jpg

잘 나오네요.^^

그러고보니 이 테스트는 이미 해보았습니다.

'제가 만드는 프로그램 Test중입니다.'

 

다음은 오디오 파일입니다.

media type은 'audio/x-ms-wma'입니다.

에러가 발생하네요.

'org.apache.xmlrpc.XmlRpcException: File extension must be gif,jpg or png'

파일 확장자가 gif, jpg, png. 즉, 그림 파일이어야 한답니다.

 

그래서 Java에서 PHP로 옮겼습니다.

이번에 쓰여진 라이브러리는 Incutio XML-RPC입니다.

 

다시 그림파일부터 해보겠습니다.

파일은 위와 동일합니다.

http://nosyu.pe.kr/blog/data/3610805/003.jpg

잘 되는군요.^^

 

다음은 오디오 파일입니다.

media type은 'audio/x-ms-wma'입니다.

역시 에러입니다.

'Something went wrong - 105 : File extension must be gif,jpg or png'

같은 메시지네요.

확장자가 gif, jpg, png만 된다고 합니다.

 

그렇다면 위의 메시지는 이글루스 서버에서 온 것이네요.

처음에 쓴 자바는 아직 소스 리딩을 하지 않아

라이브러리의 에러인지 서버 메시지인지 몰랐습니다.

하지만 PHP는 소스를 분석하고 수정하면서 쓰는 것이라

바로 알 수 있었습니다.

 

그럼 gif와 png를 각각 해보았습니다.

http://nosyu.pe.kr/blog/data/3610805/004.gif

http://nosyu.pe.kr/blog/data/3610805/006.png

잘 되는군요.^^

 

그 외의 파일은 역시 되지 않습니다.

그럼 파일 확장자만 변경해보겠습니다.

bmp 파일을 확장자명만 jpg로 바꾸고 올려보았습니다.

http://nosyu.pe.kr/blog/data/3610805/008.jpg

잘 올라가네요.

하지만 그림도 잘 보입니다.;;;

 

그럼 wma 파일을 확장자명만 jpg로 바꾸고 올려보았습니다.

http://nosyu.pe.kr/blog/data/3610805/010.jpg

문제 없이 올라가는군요.

위의 파일을 다운로드 받아 확장자를 다시 wma로 바꾸니 잘 되네요.^^

 

덕분에 재미있는 실험을 해보았습니다.

거기다 코드 읽기 실력이 조금 향상되었습니다.^^

(삽질은 조금 했거든요.ㅜㅜ)

 

이글루스는 그림 파일만 API로 업로드 하기를 허용합니다.

그림 파일이 아닌 다른 파일인 경우 확장자를 바꾸면 올라갑니다만,

이런 삽질을 하느니 차라리 divshare와 같은

파일 배포 전문 사이트를 이용하는 것이 좋을 듯싶습니다.

물론 속도는 느리지만...;;;;

 

참조

http://www.xmlrpc.com/metaWeblogNewMediaObject

http://en.wikipedia.org/wiki/MIME

http://en.wikipedia.org/wiki/Internet_media_type

http://ws.apache.org/xmlrpc

http://scripts.incutio.com/xmlrpc

크리에이티브 커먼즈 라이센스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/968

댓글을 달아 주세요

  1. dudtn 2007/07/18 21:28  댓글주소  수정/삭제  댓글쓰기

    저는 포스팅할 때 포함시킬 파일을 api 원격 포스팅시에 쉽게 첨부할 수 있을까? 하는게 목적이었는데... 파일명을 바꿔주고, 나중에 블로그에 접속해서 마무리 해줘야 한다면...좀 번거롭긴 하겠네요^^
    파일올리시려고 무진장 수고하셨습니다.

    글 잘 읽고 갑니다.~'0^

  2. NoSyu 2007/07/18 21:33  댓글주소  수정/삭제  댓글쓰기

    /dudtn/
    스펙을 읽어보면 그림 파일만 된다는 제약은 없습니다.
    따라서 이것은 이글루스에서 제한하는 것입니다.
    티스토리 및 다른 곳은 또 어떠할지 모르겠네요.^^

  3. 아르핀 2007/07/19 17:20  댓글주소  수정/삭제  댓글쓰기

    와우! 재밌는 실험이네요.
    전 API로 글을 올리는 것이 아니라서 쓸지는 모르겠지만... ^^ 그림 파일만 올라간다고 하더라도 편하겠네요.
    저는 평소에 스프링노트(<a href="http://www.springnote.com">http://www.springnote.com</a>)에다 쓰고 이글루스에 보내는 경우도 있습니다. 사진이나 파일을 첨부할 일이 있다하면 이글루스에서 직접 작성하구요.

    음, 한번 그림이나 파일을 첨부해서 보내지는지 확인을 해봐야겠습니다. ㅎㅎ

  4. NoSyu 2007/07/19 18:38  댓글주소  수정/삭제  댓글쓰기

    /아르핀/
    스프링노트를 쓰시는군요.^^
    전 해당 인터넷에 글 쓰는 것은 블로그 하나로 끝을 내려고 생각하기에...^^
    아마 API가 지원되니 잘 되리라 생각됩니다.^^

[로그인][오픈아이디란?]