CDN API Documentation

From Sirikata Wiki
Jump to navigation Jump to search

Model URLs

The URL for a model consists of:

meerkat://[HOSTNAME]/BASENAME/FORMAT[/VERSION]

Where:

  • BASENAME = The user-chosen path for the model, e.g. /jterrace/duck.dae
  • HOSTNAME = Address of the CDN server. If not specified, the OH client defaults to open3dhub.com
  • FORMAT = One of the CDN formats. Currently supported are "priginal", "pptimized" and "progressive".
  • VERSION = The version number of the model. If not specified, the latest version is returned by the CDN.

Examples

  • Returns the latest version of optimized format:
meerkat:///jterrace/models/plantbox.dae/optimized/plantbox.dae
  • Returns progressive format, version 0:
meerkat:///jterrace/models/plantbox.dae/progressive/0/plantbox.dae
  • Loads from a server on localhost:
meerkat://localhost:8080/jterrace/box.dae

Note

The filename at the end of the URL is technically optional, but the OH won't pick up dependent files, like textures, without it.

Retrieving Single Model Info

/api/modelinfo/BASENAME/VERSION

This retrieves the JSON for a single model with all of its formats.

Example

http://open3dhub.com/api/modelinfo/jterrace/models/plantbox.dae/0

Browsing the CDN

/api/browse/[?start=TIMESTAMP]

This browses the models on the CDN. Without a start argument, returns the most recent 25 models on the CDN. It will also contain a "next_start" value, which you can pass later to start at the next timestamp to continue browsing.

Examples

Uploading

/api/upload

This requires authentication using OAuth. Only an access token is required, and you can get that from a user's profile page on the CDN site.

Params

* title - The title of the model
* username - The username that is being used to upload. This must match the username of the OAuth key.
* path - Where to place the file, relative to the user's path. For example, if username is jterrace and path is "test/duck.dae", the final path will be "/jterrace/test/duck.dae"
* main_filename - If uploading multiple files, this should be the main file (e.g. COLLADA). This is still required even if only a single file is being uploaded.
* description - Description for the model
* labels - Any labels you want on the model

The actual files should be multipart encoded.

Returns

If successfull, the HTTP code should be 200. The reponse will be a JSON string. There will be a field named 'success' set to True. If an application-level error happened, there will be a field named 'error' that contains a human-readable string with the error in it. On success, a field name 'task_id' will contain the upload task identifier (used later to get the status of the upload).

Upload Status

/upload/processing