CDN Transfer Layer

From Sirikata Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The CDN HTTP Interface

There are three different types of requests

Name Lookups

A name lookup is an HTTP HEAD request that, given a named file, will return metadata. Example:

curl -v --head http://cdn.sirikata.com/dns/global/jkusnerz/Boulder_Spire_01.mesh
> HEAD /dns/global/jkusnerz/Boulder_Spire_01.mesh HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> Host: cdn.sirikata.com
> Accept: */*
HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 18:34:25 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Accept-Ranges: bytes
Hash: ddde4f8bed9a8bc97d8cbd4137c63efd5e625fabbbe695bc26756a3f5f430aa4
File-Size: 11650
Content-Type: text/html; charset=UTF-8

File Metadata

You can also do an HTTP HEAD request to get metadata for a hash directly. Example:

curl -v --head http://cdn.sirikata.com/files/global/ddde4f8bed9a8bc97d8cbd4137c63efd5e625fabbbe695bc26756a3f5f430aa4
> HEAD /files/global/ddde4f8bed9a8bc97d8cbd4137c63efd5e625fabbbe695bc26756a3f5f430aa4 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> Host: cdn.sirikata.com
> Accept: */*
HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 18:11:59 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Accept-Ranges: bytes
Content-Length: 11650
Content-Type: text/html; charset=UTF-8

File Download

Once the hash is known, you can download the file, and range requests are supported. Example:

curl -v --range 500-999 http://cdn.sirikata.com/files/global/ddde4f8bed9a8bc97d8cbd4137c63efd5e625fabbbe695bc26756a3f5f430aa4
> GET /files/global/ddde4f8bed9a8bc97d8cbd4137c63efd5e625fabbbe695bc26756a3f5f430aa4 HTTP/1.1
> Range: bytes=500-999
> User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> Host: cdn.sirikata.com
> Accept: */*
HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 18:16:36 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Accept-Ranges: bytes
Content-Length: 500
Content-Range: bytes 500-999/11650
Content-Type: text/html; charset=UTF-8
<500 bytes of binary data>