Skip to main content

A file conversion Web API in Pyramid

Project description

Convertit is a format conversion webservice.

Retrieve your document in an other format ! The input file is converted and served back ! Using a dead simple GET request, documents are pulled. Using POST request, it takes the attachment.

https://api.travis-ci.org/makinacorpus/convertit.png

Supported conversions:

  • odt -> pdf

  • odt -> doc

  • ods -> xls

  • csv -> ods

  • csv -> xls

  • svg -> pdf

  • svg -> png

Previously converted documents are cleaned along the way (on each request).

USAGE

Using GET request

Example, convert from odt to pdf :

curl http://convertit/?url=http://server/document.odt&to=application/pdf
HTTP/1.1 302 Found
Content-Disposition: attachement; filename=document.pdf
...

GET parameters:

url: absolute url of the document to be converted.

“url” also supports a “{X_FORWARDED_FOR}” placeholder for requests not knowing their own host. “{X_FORWARDED_FOR}” will be replaced with the corresponding “X_FORWARDED_FOR” header if available. Be warned that “X_FORWARDED_FOR” is not a safe value since it can be modified by user agents or given false value by forward proxies. Use only if really needed. Exemple:

curl "http://convertit/?url=http://{X_FORWARDED_FOR}/document.odt&to=application/pdf"

Using POST request

Upload data in POST parameter named file:

curl -F "file=@tiger.svg" http://convertit/?to=image/png
HTTP/1.1 302 Found
Content-Disposition: attachement; filename=tiger.png

Query parameters

  • to: output mimetype (optionnal, default to application/pdf if not provided);

  • from: input mimetype (optionnal, guessed from input url or file if not provided).

INSTALL

System dependencies

  • for OpenDocument support: unoconv

  • for SVG support: inkscape

Conversion binaries should be in system PATH (which is used internally.)

Download

  • Download and extract a released tarball from pypi

  • The bleeding edge version is hosted on github

    git clone https://github.com/makinacorpus/convertit.git
    cd convertit

Development

make serve

Once the application is running, you may visit http://localhost:6543/ in your browser.

Run tests:

make tests

Production

Using gunicorn for example :

gunicorn_paster --workers=4 production.ini

Using Docker :

sudo docker build -t="convertit" .
sudo docker run -p :6543 convertit

Feedback

Open an issue to report a bug or request a new feature.

CREDITS

Companies

makinacom

Authors

  • Antoine Cezar

  • Alex Marandon

Contributors

CHANGELOG

1.1.0 (2014-05-21)

  • Use original request header Accept-language to download the URL

  • Add {X_FORWARDED_FOR} placeholder in GET url parameter. Replaced by the corresponding header if available. It avoids the client initiating the request to be aware of its own address. Exemple:

    curl "http://convertit/?url=http://{X_FORWARDED_FOR}/document.odt&to=application/pdf"

1.0 (2013-09-03)

  • Initial working version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

convertit-1.1.0.zip (79.7 kB view details)

Uploaded Source

File details

Details for the file convertit-1.1.0.zip.

File metadata

  • Download URL: convertit-1.1.0.zip
  • Upload date:
  • Size: 79.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for convertit-1.1.0.zip
Algorithm Hash digest
SHA256 84281076463bff9f3b8fc2be77ef61f2f184753e6c74984200ba255ba188405c
MD5 99a3954d59f62e78c1e83d8811d192f0
BLAKE2b-256 0302edcdf4c84574b507749f3ec089186503032bb86a394100172455192e2829

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page