Proxy upload service
Note that only registered individuals with valid user files can upload to the network. For more information, contact us at proteomecommons-tranche-users@googlegroups.com or apply for a user at http://www.proteomecommons.org/autocert/.
Before we get going, there are two quick points that should make our proxy upload service simple to understand:
- There are two steps: sending the data to upload, and checking back periodically until the hash is available
- Some parameters are required, some are optional.
Process details
Note that some_long represents a signed 8 byte (64-bit) value. Note, only positive values are used. (0 through 2^63-1)
- Transfer upload parameters, along with data, to the proxy server. (See below for required and optional parameters.)
- Post the parameters and data (using a multi-part HTTP POST) to:
http://www.proteomecommons.org/data/upload/
- If the request was successfully received and parsed, you will receive a response with a single line (parse and store the request id):
- If there was an exception, the response will include the exception message and the stack trace, will may be on multiple lines. You could present the user with the exception message, and send us the full exception and stack trace.
- Use the request to retrieve your hash.
- Send the request id as part of an HTTP request:
http://www.proteomecommons.org/data/upload/update.jsp?request=some_long
- If the upload is complete, the response will contain two lines:
STATUS = COMPLETE
HASH = some_hash
- If the upload is incomplete, the response will contain three lines:
STATUS = INCOMPLETE
DATA TO UPLOAD = some_long
DATA UPLOADED = some_long
- If there is an error, the response will contain at least two lines:
STATUS = FAILED
EXCEPTION: some_multi-line_message
Required parameters
- uzh
- Type: file
- Description: User zip file. The "*.zip.encrypted" file that is used to denote a user in a Tranche upload.
- uzfPassphrase
- Type: text
- Description: The passphrase used to unencrypt the user zip file.
- upload
- Type: file
- Description: The file to be uploaded to Tranche. This should be a ZIP or TAR file if this is a directory upload, or can simply be a file.
- title
- Type: text
- Description: The title of project that is being uploaded.
- description
- Type: text
- Description: The description of the project that is being uploaded.
Optional parameters
- server1 [, server2, etc...]
- Type: text
- Description: Any text field that starts with "server" will be added to a list of Tranche servers to be uploaded to.
- register
- Type: boolean [String "true" or "false"]
- Description: Whether or not this upload should be registered with the ProteomeCommons.org network. Default is true.
- remoteRep
- Type: boolean [String "true" or "false"]
- Description: Whether or not this upload should use remote replication. Default is false.
- skipFiles
- Type: boolean [String "true" or "false"]
- Description: Whether or not this upload should skip files if they are already online. Default is false.
- skipChunks
- Type: boolean [String "true" or "false"]
- Description: Whether or not this upload should skip chunks if they are already online. Default is true.
Simple use case
Say you offer visualization software written in a language of your choice, such as C++, Java, Python, Ruby, etc. You want to offer users the opportunity the share their data seemlessly, as well as offer visualizations from submitted data.
You could use our proxy upload service to upload projects to the Tranche network, and your system could record appropriate projects. The system could then use recorded modules to construct URLs to download the data using the proxy download service, and create a fairly simple pipeline without bothering with obtaining storage space or dealing with complex protocols!
Note that if you with to collaborate with us, please contact us at proteomecommons-tranche-users@googlegroups.com. We will do our best to help you, as we are always interested in collaborations.
You will need a signed user to upload to our network. You software may keep the user certificate in a secure centralized location and filter upload requests from that centralized location. Of course, you cannot distribute the user file with your software, as this would pose a significant security risk. When in doubt, please contact us.
To apply for a certificate, visit http://www.proteomecommons.org/autocert/.