2009-09-17 11 views
7

Je suis actuellement en train de jouer avec couchdb et de tester la fonctionnalité 'pièces jointes autonomes', qui est décrite près du bas de this page.Création d'une pièce jointe autonome couchdb en utilisant cURL

J'essaie d'utiliser la fonction --data-urlencode de curl pour envoyer la demande de création, qui ne fonctionne qu'à moitié. Je peux créer la pièce jointe et la récupérer, mais le champ Type de contenu est incorrect, donc l'image ne s'affichera pas correctement. Pour être plus précis, CouchDB semble fonctionner en renvoyant la pièce jointe en utilisant le même type de contenu que celui dans lequel il a été posté. (Ce qui est parfaitement logique) Mon problème est que curl n'envoie pas le bon code. Voici les détails.

curl -vX PUT http://localhost:5984/dafttest/666/attachment --data-urlencode image/[email protected]_on_beach.jpg 
* About to connect() to localhost port 5984 (#0) 
* Trying 127.0.0.1... connected 
* Connected to localhost (127.0.0.1) port 5984 (#0) 
> PUT /dafttest/666/attachment HTTP/1.1 
> User-Agent: curl/7.19.4 (x86_64-pc-linux-gnu) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3 
> Host: localhost:5984 
> Accept: */* 
> Content-Length: 495389 
> Content-Type: application/x-www-form-urlencoded 
> Expect: 100-continue 
> 

Donc la version courte de cette question est; comment obtenir cURL pour envoyer le Content-Type correct?

EDIT:

je libère que mon autre erreur a été d'utiliser --data-urlencode, quand l'obtenir au travail, je dois utiliser @filename binaire --data avec l'option -H que Dale a suggéré .

Répondre

5

Vous pouvez add headers with the -H/--header switch, afin d'ajouter un en-tête pour le type de contenu image/jpeg, ajoutez à votre commande:

-H "Content-Type: image/jpeg"

+0

J'ai aussi required --data-binary @filename non --data-urlencoded, j'ai édité mon message au cas où quelqu'un d'autre se heurterait à cela. –

Questions connexes