Upgrade to Pro — share decks privately, control downloads, hide ads and more …

tus.io - Resumable File Uploads (Lightning Talk)

tus.io - Resumable File Uploads (Lightning Talk)

Lightning Talk given at UIKonf 2013 preparty about tus.io - resumable file uploads.

Felix Geisendörfer

May 01, 2013
Tweet

More Decks by Felix Geisendörfer

Other Decks in Technology

Transcript

  1. felixge
    tus.io
    Resumable File Uploads
    Felix Geisendörfer
    ?

    View full-size slide

  2. @felixge
    felixge
    File uploading sucks

    View full-size slide

  3. @felixge
    felixge
    HD cameras everywhere
    HD
    Cameras
    Huge
    file sizes
    Example: 45 second video on iPhone 5 = ~100 MB

    View full-size slide

  4. @felixge
    felixge
    Slow uplinks
    • Wifi: ~2.5min (~5000kbsp)
    • LTE: ~10 min (~1300 kbsp)
    • 3G: ~40min (at ~330 kbps)
    • Edge: ~66 min (at 200 kbps)
    Average upload speeds for 100 MB*
    * sources: Apple Network Link Conditioner and http://www.lte-anbieter.info/presse/12/analyse-speed-lte.html

    View full-size slide

  5. @felixge
    felixge
    Unreliable Networks

    View full-size slide

  6. felixge
    99.9 / 100 MB upload, 2 seconds remaining
    error: connection lost, please upload again!

    View full-size slide

  7. felixge
    resumable file uploading

    View full-size slide

  8. felixge
    possible today,
    but very hard

    View full-size slide

  9. felixge
    the tus resumable
    upload protocol

    View full-size slide

  10. felixge
    simple, open, free
    https://github.com/tus/
    tus-resumable-upload-protocol
    v0.2 was released today!

    View full-size slide

  11. felixge
    POST /files HTTP/1.1
    Host: tus.example.org
    Content-Length: 0
    Final-Length: 100
    HTTP/1.1 201 Created
    Location: http://tus.example.org/files/1

    View full-size slide

  12. @felixge
    felixge
    PATCH /files/1 HTTP/1.1
    Host: tus.example.org
    Content-Length: 100
    Offset: 0
    [file data]
    HTTP/1.1 200 Ok

    View full-size slide

  13. @felixge
    felixge
    HEAD /files/1 HTTP/1.1
    Host: tus.example.org
    HTTP/1.1 200 Ok
    Offset: 70

    View full-size slide

  14. @felixge
    felixge
    PATCH /files/1 HTTP/1.1
    Host: tus.example.org
    Content-Length: 30
    Offset: 70
    [remaining file data]
    HTTP/1.1 200 Ok

    View full-size slide

  15. felixge
    clients and servers
    for all platforms

    View full-size slide

  16. felixge
    tus-ios-client
    https://github.com/tus/tus-ios-client
    by Alexis Hildebrandt

    View full-size slide

  17. felixge
    upload acceleration

    View full-size slide

  18. felixge
    checksums, meta
    data, streams, etc.

    View full-size slide

  19. @felixge
    felixge
    tus.io

    View full-size slide