2011-09-06 3 views
0

Basecamp API 설명서에 따르면 콘텐츠 유형이 application/octet-stream으로 설정된 HTTP POST와 파일의 이진 내용이 들어있는 요청 본문 (http://developer.37signals.com/basecamp/ 참조)을 사용하여 파일을 업로드해야합니다. 모든 것을 메모리로 읽어주기보다는 파일을 스트리밍하고 싶습니다. 파이썬 2.7을 사용하고 있습니다.Python을 사용하는 Basecamp 파일 업로드

나는 몇 가지 가능성을 볼 수

  • 는 낮은 수준의 소켓 API를 사용하여이 작업을 수행합니다.
  • urllib2를 포스터 (http://atlee.ca/software/poster/)와 함께 사용하면 파일 스트리밍을 처리 할 수 ​​있습니다. 그러나 Poster를 사용하면 파일 스트리밍을위한 특수 오프너를 등록하고 나 자신의 오프너를 이미 (build_opener에 전달하여) Basecamp 서버의 인증을 처리하기 위해 사용하고 있습니다. 또한 포스터 문서는 양식 데이터를 게시하는 것에 대해서만 이야기하고 있으며 (여전히 소스 코드 읽기) 옥텟 스트림을 처리 할 수 ​​있는지 여부는 아직 명확하지 않습니다.
  • httplib을 사용하십시오. 이것은 POST 데이터에 대한 저수준 처리를 제공하는 것처럼 보이지만 (따라서 옥텟 스트림을 사용할 수는 있지만) 여전히 파일을 스트리밍하는 쉬운 방법은 없습니다.

내가 Python: HTTP Post a large file with streaming이라고 알았지 만 httplib (!)을 패치해야하는 양식 데이터 형식을 사용하고 싶지 않은 것 같습니다. 그 게시물은 1 년 된 것이므로 지금은 더 좋은 방법이 있기를 바랍니다.

지금 저는 포스터처럼 내 믹스 인을 만드는 방법을 조사하고 있습니다. 그러나 궁금합니다. 상대적으로 표준화 된 유스 케이스처럼 보이는 것을 처리하는 더 쉬운 방법은 없을까요?

답변