#!/bin/bash # Check the version of openssl. if [[ `openssl version` < 'OpenSSL 0.9.8e' ]]; then echo "openssl is too old - must be version 0.9.8e or later." exit 1 fi # Set our Access Key Id, and Secret Access Key. readonly ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' readonly SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # Uploads a single file to PDF Alchemy. function uploadFile { # $1 => filename. echo -n "Uploading '$1': " DATE=`date --rfc-2822 --utc` UPLOAD_NAME=`basename "$1"` UPLOAD_NAME=`echo -n "$UPLOAD_NAME" | tr -c '\-0-9a-zA-Z\-._~' '_'` REQUEST="/$ACCESS_KEY_ID/inqueue/$UPLOAD_NAME" CLEARTEXT=`echo -e "PUT\n$ACCESS_KEY_ID\n$DATE\n$REQUEST"` SIGNATURE=`echo -n "$CLEARTEXT" | openssl dgst -sha1 -hmac "$SECRET_ACCESS_KEY" -binary | openssl base64` curl -H "Date: $DATE" -H "X-PDF-Alchemy-Signature: $SIGNATURE" -T "$1" "http://www.pdfalchemy.com$REQUEST" echo } # Uploads all convertable files from a single directory, to PDF Alchemy. function uploadFilesInDir { # $1 => dirname. ls -1 "$1" | grep '\.\(doc\|docx\|rtf\|txt\)$' | xargs -I{} "$0" "$1/{}" } # Check that we have been called with one argument. if [ "$#" -ne 1 ]; then echo "Usage: `basename $0` filename|dirname" exit 1 fi # Upload the directory / file. if [ -d "$1" ]; then uploadFilesInDir "$1" else uploadFile "$1" fi