2016-04-05 26 views
0

Flickrにファイルをアップロードするクラスがあります。ファイルのタイプは
'InMemoryUploadedFile'です。djangoのInMemoryUploadedFileをflickr API用のfomatに変換するにはどうすればよいですか?

「InMemoryUploadedFile」ファイルのデータをflickrのAPIの形式に変換または渡す方法を知りたいですか?

例:

{'photo': ('image.jpg', <InMemoryUploadedFile: image.jpg (image/jpeg)>)} 

アップロードAPI:https://www.flickr.com/services/api/upload.api.html

エラーコード

<?xml version="1.0" encoding="utf-8" ?> 
<rsp stat="fail"> 
    <err code="4" msg="Filesize was zero" /> 
</rsp> 

答えて

2

InMemoryUploadedFileは、ファイルオブジェクトの周りwrapperです。 file属性を使用してファイルオブジェクトにアクセスできます。だから、あなたの例では、FlickrのAPIにこれを渡してみてください:

{'photo': my_in_memory_file.file} 

問題が解決しない場合は、リクエストを送信するために使用しているコードの周りに、より詳細にあなたの質問を編集してください。

+0

感謝。しかし、それは返す:{'写真':( 'image.jpg'、<_io.BytesIOオブジェクトを0x10dbefa70>) – user3613750

+0

<?xml version = "1.0" encoding = "utf-8"?> \t user3613750

+0

あなたの質問を使用しているコードで更新できますか? '{'photo':( 'image.jpg'、0x10dbefa70の_io.BytesIOオブジェクト)}}と、APIに写真を投稿するために使用しているコードを出力するコードの両方。 – spiffyman

1

経由で正常にFlickrに抽出し、渡されたonbject InMemoryUploadedFile内部データ:

import StringIO 
file.seek(0) 
file_handle = StringIO.StringIO(file.read()) 
{'photo': ('image.jpg', file_handle)} 

おかげ

+0

Python 3では無効です。 –

関連する問題