A user can upload files to the JEA service using the Upload operation. A typical use case is that uploading all project files zipped into an archive for safekeeping or sharing. A successful upload to be stored with an auto-generated file ID, instead of the original file name. Subsequent download operations must reference this ID. It will not be possible to obtain the original file name from the server, hence the client program or the user should keep track of the uploaded files.
When uploading a file, a valid JWT token must be included in the header, or the transaction will be rejected with an HTTP 401 Unauthorized error code.
If the uploaded file is successfully received and stored by the server, it will return an acknowledgment containing the status and the file ID (fileHandle
). Also returned is a callback link which is not currently in use.
{ "ok" : true, "status" : "File upload accepted", "fileHandle" : "d07b790c956e0fa5036b420edce2f5f0", "callback" : "https://api.ensims.com/jea_web/api/view/d07b790c956e0fa5036b420edce2f5f0" }
To download the file with ID command using curl:
curl -b cookies -F "file=@dn.png" https://api.ensims.com/jea_web/api/upload
On successful operation, an Upload Info object is returned. If the existing JWT is invalid, an HTTP 401 Unauthorized code will be returned.
Make sure Requests is correctly installed in your Python environment, and run the following the lines:
import requests # Make a post request with the stored cookies from the log on transaction url = 'https://api.ensims.com/jea_web/api/upload' files = {'file': open('dn.png', 'rb')} r = requests.post(url, headers=headers, files=files, cookies=cookies) r.json()['fileHandle']