Datei-Upload mit multipart/form-data und urllib2
Verfasst: Sonntag 19. August 2012, 14:24
Hallo Leute,
ich versuche im Moment eine kleine lib für die API des Box.net Cloud-Dienstes zu erstellen. Die haben eine REST-API und bisher bin ich soweit, dass die Anmeldung funktioniert. Um mit den Dateien zu arbeiten, wird aber cURL verwendet, das klappt bei einfachen Sachen wie dem Abfragen von Infos auch noch, weil dort nur ein Header dazu muss jetzt hab ich aber folgendes:
Das -H für Header is auch noch klar. Aber die -F sind ja multipart/form-data Sachen. Und da weiß ich genau GAR NICHT, wie ich die hinzufüge, scheinbar ja mit add_data - laut der Doc, jedoch werd ich daraus gar nicht schlau.
Bisher hab ich es so versucht:
Aber ich hab eben keine Ahnung wie das "data" richtig hizugefügt wird/werden muss.
Über hilfe wäre ich sehr froh, Danke schon im Vorraus!
AlphaX2
ich versuche im Moment eine kleine lib für die API des Box.net Cloud-Dienstes zu erstellen. Die haben eine REST-API und bisher bin ich soweit, dass die Anmeldung funktioniert. Um mit den Dateien zu arbeiten, wird aber cURL verwendet, das klappt bei einfachen Sachen wie dem Abfragen von Infos auch noch, weil dort nur ein Header dazu muss jetzt hab ich aber folgendes:
Code: Alles auswählen
curl https://www.box.com/api/2.0/files/data \
-H "Authorization: BoxAuth api_key=API_KEY&auth_token=AUTH_TOKEN" \
-F filename=@FILE_NAME \
-F folder_id=FOLDER_ID
Bisher hab ich es so versucht:
Code: Alles auswählen
import urllib2
url = 'https://www.box.com/api/2.0/folders/0'
auth = "BoxAuth api_key=<MEIN KEY>&auth_token=<MEIN TOKEN>"
req = urllib2.Request(url)
req.add_header("Authorization", auth)
req.add_header("Content-Type", "multipart/form-data") # k.a. ob's hilft
req.add_data("filename = @/home/user/Bilder/wazapp_bbz.jpg, folder_id=0")
result = urllib2.urlopen(req)
result = result.read()
print result
Über hilfe wäre ich sehr froh, Danke schon im Vorraus!
AlphaX2