Let’s Fix File Uploading · Felix Geisendörfer

Let’s Fix File Uploading · Felix Geisendörfer


Let’s Fix File Uploading · Felix Geisendörfer

Published:

tl;dr: We are creating an open source project to provide a turnkey file
uploading solution called tus. Today we are happy to show
you our first resumable file uploading demo.

It’s 2013, and adding reliable file uploading to your app is still too damn
hard. And if content is king, this poses a serious problem to those interested
in acquiring it. In this post I’ll describe the current uploading landscape and how we
are planning to fix it.

Resumable Uploads

Have you ever tried uploading a big file over an unreliable internet
connection? Depending on the site you were using, the experience can be
extremely frustrating. Except for a few bigger sites, network errors will
force you to restart your upload from the beginning. Even worse, some sites
will be unable to detect this problem, leaving it up to you to figure out why
the progress bar is stuck.

The solution of course is to offer resumable file uploads, however, this is
easier said than done. While there is no shortage of bits and pieces that can
help you with building your own solution, there is no simple solution that you
can get up and running in a few minutes.

The first thing you’ll need to figure out is a server side API. Google has
published several http protocols for resumable uploading (e.g.
YouTube,
Google Drive), but they
all rely on a non-standard http code 308 Resume Incomplete which is on
collision course with upcoming
standards. Amazon
S3 offers multipart
uploads
(not to be confused with multipart/form-data), but they are hard to use and
the minimum chunk size is 5MB which is far too large to be useful under bad
networking conditions.

And even if you figure out the server side, you’ll still need to take care of
the client side. For HTML5, your best bet is to start out with something
like jQuery File Upload which
has some basic support for resumable uploads, but you’ll still have a lot of
tweaking ahead of you in order to make it work with your server side API. If
you are also running native iOS / Android apps, you will be entirely on your
own to come up with a solution.

Fuck this. It’s 2013, and you shouldn’t have to waste several days for what
will only be a rudimentary solution, hard to scale, and a pain to maintain.
This is where we come in with tus. Tus is an open source
project that aims to provide you with a turnkey solution to all your file
uploading needs. We are designing a
protocol, building a
server, and are working on clients for HTML5,
iOS and Android. Once these are solid, we will also provide a hosted service,
making it even easier for people to get going, as well as allowing us to recoup
our investment in this project.

Today is a great day to have a first look, as we have just completed our first
resumable file uploading demo for HTML5. The
demo is pointed at a tusd instance running on
EC2, and uses jQuery File
Upload under the hood. What’s
exciting about it, is that it not only handles network errors, but also browser
crashes and user errors like closing the page. No matter what happens, a
previous upload will always continue where it left off.

So check it out, and give us your
feedback. We are
also very interested to hear what other issues you’d like to see solved. If you
are not sure about the possibilities, just read on.

A world of possibilities

Resumable file uploads are just the tip of the iceberg, and there are many more
problems ripe for a solution. However, we need your help in prioritizing them,
so please let us know which of the things below you would find valuable.

  • File upload acceleration: There are many situations where file uploads
    fail to achieve optimal performance due to latency and TCP
    limitations. We hope
    to tackle this from multiple angles: Hosting a reverse CDN to improve latency
    regardless of user location, utilizing multiple TCP connections to increase
    the effective tcp window size, and maybe in the far future implement a
    specialized UDP protocol.
  • Huge files: With HD cameras on the rise, uploads become bigger and bigger. A
    good solution should be able to handle files > 2GB with ease.
  • Streaming: A lot of files can be processed as a stream, so tus should
    make it easy to let you download and process an active upload.
  • Service Integrations: It should be easy to let your users select files
    from their Dropbox, Facebook, Google Drive or other cloud services.
  • Processing pipelines: Most files are media files and require additional
    processing before being consumed by other users. Tus should easily integrate
    with existing processing solutions such as
    Transloadit, Zencoder and
    others.
  • Scalability: It should be easy to run a cluster of tus instances, allowing
    you to add or remove capacity as needed.
  • Security: HTTPS is a no-brainer, but we are hoping to raise the bar by
    supporting file encryption on the fly for applications that can benefit from it.
  • Protocols: HTTP is not the only protocol out there. We are interested in
    exploring uploads via FTP, E-Mail and other commonly used protocols.

If any of the above sounds exciting to you, please let us
know. For now our
priority is to release a solid server along with great client libraries for
HTML5, iOS and Android, but at the end of the day it will be your feedback
that will drive our roadmap.

— Felix Geisendörfer


Subscribe to this blog via RSS or E-Mail or get small updates from me via Twitter.





Source link

Postagens Similares

  • Pergi Tanpa Cabang · Felix Geisendörfer

    Diterbitkan: 3 Desember 2021 Sepertinya postingan saya sebelumnya berhasil dan banyak dari Anda telah mengirimkan solusi Anda sendiri melalui twitter. Sebelum saya melanjutkan untuk memilih hari lain sebagai tantangan, saya ingin melakukan sedikit tindak lanjut untuk hari 1-1. Solusi Valentin Deleplace Mari kita mulai dengan melihat kemenangannya larutan dari Valentin Deleplace yang mencapai hasil spektakuler…

  • 用 Go 編寫的 Parrot AR 無人機 2.0​​ 固件 Felix Geisendörfer

    GoDrone – 用 Go 編寫的 Parrot AR 無人機 2.0​​ 固件 · Felix Geisendörfer 發表: 2013 年 12 月 25 日 大家聖誕快樂(或者牛頓聖誕,如果你願意的話)。 今天,我很高興發布我最喜歡的副項目 GoDrone 的第一個版本。 GoDrone 是 Parrot AR Drone 2.0 的免費軟件替代固件。是的,這有望使其成為 Go 垃圾收集器的第一個機器人可視化工具:)。 此時,固件已經足夠好,可以飛行並提供基本的姿態穩定(使用簡單的互補濾波器+PID控制器),所以我真的很想從任何喜歡冒險的AR無人機所有者那裡得到反饋。我為 OSX/Linux/Windows 提供二進制安裝程序: http://www.godrone.io/en/latest/index.html 但您也可以選擇從源安裝。 根據最初的反饋,我很樂意將 GoDrone 變成官方固件的可行替代品,並為機器人軟件的開髮帶來一些新鮮空氣。我特別想展示的是,網絡技術在為機器人提供用戶界面的成本和用戶體驗方面可以與本地移動/桌面應用程序相媲美,而且我還想推廣使用高級語言在 Linux 驅動的機器人中進行固件開發的想法。 如果您有興趣,請確保加入郵件列表/在 IRC 中打個招呼: http://www.godrone.io/en/latest/user/community_support.html ——菲利克斯·蓋森多夫 通過 RSS 或電子郵件訂閱此博客,或者通過以下方式獲取我的小更新 嘰嘰喳喳。 請啟用 JavaScript 以查看…

  • ما الذي لا يبدو وكأنه عمل؟

    يناير 2015 والدي عالم رياضيات. كان يعمل في معظم طفولتي في شركة وستنجهاوس، في تصميم نماذج المفاعلات النووية. لقد كان أحد هؤلاء الأشخاص المحظوظين الذين يعرفون في وقت مبكر ما يريدون القيام به. عندما تتحدثين معه عن طفولته، هناك نقطة تحول واضحة في سن الثانية عشرة تقريبًا، عندما “أصبح مهتمًا بالرياضيات”. نشأ وترعرع في بلدة…

  • إرشادات مطوري Apple للتقييمات ومطالبات المراجعة

    تصميم أبل: تجنب مضايقة الناس. يمكن أن تكون طلبات التقييم المتكررة مزعجة، وقد تؤثر سلبًا على رأي الأشخاص في تطبيقك. فكر في السماح بأسبوع أو أسبوعين على الأقل بين الطلبات، والحث مرة أخرى بعد أن يُظهر الأشخاص تفاعلًا إضافيًا مع تجربتك. تفضل المطالبة المقدمة من النظام. توفر أنظمة iOS وiPadOS وmacOS طريقة متسقة وغير تدخلية…

  • Ментон Ріс – Переоцінка Twitter/X API

    Місяць тому я вголос задавався питанням, чи настав час додати перехресні публікації з Twitter до Micro.blog. Після довгих роздумів і відгуків користувачів я вважаю, що так. Мета завжди полягала в тому, щоб допомогти людям спочатку публікувати публікації на їхньому власному домені, незалежно від того, де вони також вирішили поділитися своїми публікаціями. Хоча я сподівався, що…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *