Skip to content

Instantly share code, notes, and snippets.

@mronkko
Created June 30, 2012 08:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mronkko/3022877 to your computer and use it in GitHub Desktop.
Save mronkko/3022877 to your computer and use it in GitHub Desktop.
2) Get upload authorization
Request:
POST https://api.zotero.org/users/1060030/items/JXSUX7JA/file?key=GZhvTzGdIP1E45P6TRJ8GIB0 HTTP/1.1
User-Agent: ZotPad beta 1.1 (iPad; iPhone OS 5.1.1; fi_FI)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip
If-Match: c228dae85393b8d71cc3d71346d3e69f
Content-Length: 137
Cookie: __utma=244989198.963079005.1340913958.1340991311.1341041487.4; __utmz=244989198.1340913958.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
md5=cc53be07d0f116d3a880532d1cbdf2a0&filename=test.txt&filesize=49&mtime=1341049434000&contentType=text/plain&charset=iso-8859-1&params=1
Response:
HTTP/1.0 200 OK
Server: Apache/2.2.15 (CentOS)
Content-Type: application/json
X-Powered-By: PHP/5.3.8
Content-Length: 617
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Sat, 30 Jun 2012 10:28:45 GMT
Connection: close
{"url":"https:\/\/zoterofilestorage.s3.amazonaws.com\/","params":{"AWSAccessKeyId":"AKIAITLKT5U6BBR6DAJA","key":"cc53be07d0f116d3a880532d1cbdf2a0\/test.txt","acl":"private","policy":"eyJleHBpcmF0aW9uIjoiMjAxMi0wNi0zMFQxMToyODo0NVoiLCJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJ6b3Rlcm9maWxlc3RvcmFnZSJ9LHsiYWNsIjoicHJpdmF0ZSJ9LHsic3VjY2Vzc19hY3Rpb25fc3RhdHVzIjoiMjAxIn0sWyJlcSIsIiRrZXkiLCJjYzUzYmUwN2QwZjExNmQzYTg4MDUzMmQxY2JkZjJhMC90ZXN0LnR4dCJdLFsiZXEiLCIkQ29udGVudC1UeXBlIiwidGV4dC9wbGFpbiJdLFsiZXEiLCIkQ29udGVudC1NRDUiLCJ6Rk8rQjlEeEZ0T29nRk10SEwzeW9BPT0iXSxbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwwLDI2MjE5M11dfQ==","signature":"bbRgabPyrvE2GClk\/bKX5luTKDA=","success_action_status":"201","Content-Type":"text\/plain","Content-MD5":"zFO+B9DxFtOogFMtHL3yoA=="},"uploadKey":"effe0899a4a489d7bb3a4ba7707e4a57"}
3a) Full upload
i. POST file
POST https://zoterofilestorage.s3.amazonaws.com/ HTTP/1.1
User-Agent: ZotPad beta 1.1 (iPad; iPhone OS 5.1.1; fi_FI)
Content-Type: multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
If-Match: c228dae85393b8d71cc3d71346d3e69f
Content-Length: 1705
Accept-Encoding: gzip
==== Building a multipart/form-data body ====
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="AWSAccessKeyId"
AKIAITLKT5U6BBR6DAJA
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="success_action_status"
201
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="signature"
bbRgabPyrvE2GClk/bKX5luTKDA=
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="acl"
private
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="key"
cc53be07d0f116d3a880532d1cbdf2a0/test.txt
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="policy"
eyJleHBpcmF0aW9uIjoiMjAxMi0wNi0zMFQxMToyODo0NVoiLCJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJ6b3Rlcm9maWxlc3RvcmFnZSJ9LHsiYWNsIjoicHJpdmF0ZSJ9LHsic3VjY2Vzc19hY3Rpb25fc3RhdHVzIjoiMjAxIn0sWyJlcSIsIiRrZXkiLCJjYzUzYmUwN2QwZjExNmQzYTg4MDUzMmQxY2JkZjJhMC90ZXN0LnR4dCJdLFsiZXEiLCIkQ29udGVudC1UeXBlIiwidGV4dC9wbGFpbiJdLFsiZXEiLCIkQ29udGVudC1NRDUiLCJ6Rk8rQjlEeEZ0T29nRk10SEwzeW9BPT0iXSxbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwwLDI2MjE5M11dfQ==
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="Content-Type"
text/plain
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="Content-MD5"
zFO+B9DxFtOogFMtHL3yoA==
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58
Content-Disposition: form-data; name="file"; filename="test_JXSUX7JA-.txt"
Content-Type: text/plain
[49 bytes of data from file '/var/mobile/Applications/0426FEF4-6BF1-410F-91B0-946BDC9D884F/Documents/test_JXSUX7JA-.txt']
--0xKhTmLbOuNdArY-E5A50F1D-C799-454F-B6AA-2BE981BF7B58--
==== End of multipart/form-data body ====
Response:
HTTP/1.1 201 Created
Etag: "cc53be07d0f116d3a880532d1cbdf2a0"
x-amz-request-id: D79EB8F5545CECB7
x-amz-id-2: 6vL0ImOwA1sDUuy48j32x0kVBXkJ65Bz4jnem85LOyjbfC7d4fcmijoFm2+cl9b2
Content-Type: application/xml
Content-Length: 308
Server: AmazonS3
Date: Sat, 30 Jun 2012 10:28:46 GMT
Location: https://zoterofilestorage.s3.amazonaws.com/cc53be07d0f116d3a880532d1cbdf2a00.000000test.txt
ii. Register upload
POST https://api.zotero.org/users/1060030/items/JXSUX7JA/file?key=GZhvTzGdIP1E45P6TRJ8GIB0 HTTP/1.1
User-Agent: ZotPad beta 1.1 (iPad; iPhone OS 5.1.1; fi_FI)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip
If-Match: c228dae85393b8d71cc3d71346d3e69f
Content-Length: 39
Cookie: __utma=244989198.963079005.1340913958.1340991311.1341041487.4; __utmz=244989198.1340913958.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
upload=effe0899a4a489d7bb3a4ba7707e4a57
Response:
HTTP/1.0 204 No Content
X-Powered-By: PHP/5.3.8
Server: Apache/2.2.15 (CentOS)
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Connection: close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment