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

  • 初创公司正在走向衰败的迹象

    另请参阅您即将被收购的迹象。 当赚钱很容易时,每个人看起来都像天才,即使是经营最差的公司也能提供一些数字。但到 2023 年初,我们现在正处于科技衰退之中,甚至不是整体经济衰退。 正如巴菲特所说; 潮水已经退去,现在我们看看谁在裸泳。 我的一位朋友最近正在评估工作机会,其中一个显然是一家“正在变坏”的初创公司。我很清楚,但他们却不清楚;我想我应该写一篇文章来阐明我所看到的一些东西。 人们喜欢谈论正在崛起的初创公司。风险投资公司希望证明他们很早就看到了潜力,创始人希望招募员工和客户,媒体希望接触到未来的独角兽,而没有人想打击这个小家伙。愤怒和戏剧性的灾难最受关注,但其次是真正努力“让世界变得更美好”的人所带来的积极快乐的氛围。 初创公司在早期形成了某种阿谀奉承的助推器:达到了早期里程碑,增长数字强劲,某种形式的没有 Y 轴的右上图表推动了叙述。极少数甚至最终夸耀了最有意义的 Y 轴:收入。 积极的故事也是一个更容易、更清晰的故事。正如托尔斯泰所说,所有的火箭初创公司都是相似的,但每一个衰落的初创公司都以自己的方式衰落,其衰落的原因完全不同,具体取决于你问的是谁。 我们在这里讨论 S 曲线的另一边。许多陷入困境的初创公司会通过说这是炒作后的道路来逃避自己的衰落,但不要被愚弄了。我们正在谈论保罗·格雷厄姆的启动曲线中不方便且未言明的部分: 当我刚接触创业游戏时,我感到不安,但对此无能为力(我也没有看到足够多的东西来了解)。但现在我看到了对那些没有足够“了解”的人的工作和职业生涯的影响,他们不知道一家曾经伟大的公司何时不再一样。然后,很多年后,很明显 除了你之外的所有人,人们公开地说“公司正处于死亡轨道”之类的话,但当你已经做出了重要的职业、技术堆栈或其他形式的投资选择时,这就太晚了。 所以我想我应该记下一些我所看到的东西来形成一个心理清单,也许可以从其他见过同样东西的人那里得到更多的想法。 免责声明 请注意,此列表是根据经验得出的 来自我工作过的公司和我仅通过朋友/我的网络观察到的公司,所以不要从我的工作经历中得出任何信号。 此外,公司经常会经历衰退阶段,然后再次复苏(最著名的是苹果公司),所以暂时的衰退并不意味着永远的衰退。 好吧,所有必要的免责声明都已排除: 尽管您可以使用它来制定技术堆栈和投资决策,但由于这主要是为了帮助初创公司员工评估工作机会,因此我们将重点关注外部可观察指标(用于加入)和内部可观察指标(用于离开)之间的明确区别。 外部标志 人们:关键高管在短时间内离职(Slack 的离职是这种情况的一个极端极端)或关键产品的开发者“出货和下降”(当他们已经确定公司正在走向糟糕时,以个人高调结束他们在初创公司的时间的常见举动) 社区:对社交媒体上的产品发布和公司活动以及相关的讨论做出回应。当一家初创公司走下坡路时,与过去的辉煌相比,定量和定性的反应都会显示出减弱的兴奋感。仅此一点并不是决定因素,因为没有一家公司能够永远保持热销势头,但它是一个因素。 一个简单的指标是公司社交媒体帖子的频率。这是一个明显有缺陷的指标,您可以对其进行过度索引,但最后一次更新是在 6-12 个月前的初创公司比根本没有尝试过的初创公司出现问题的风险要高一些。 创始人参与度:如果创始人在社交媒体上很活跃(很多人并不活跃)——他们是否明显不太喜欢自己的初创公司?一些分心是可以的,但与用户的互动减少、自我推销/庆祝减少、对公司使命的支持减少就是一个迹象。 产品: 路线图:(经过基础研究)如果不清楚用户下一步想从初创公司看到什么……也许他们不知道 足够关心 想要任何东西。 野心:初创公司最后一次交付技术上困难/令人震惊的东西是什么时候?而不是增量/容易实现的成果? 波兰语:UX/DX/文档/营销是否注重细节?情况有明显恶化吗?那是因为真正关心的人数正在减少。这家初创公司是否是一个功能工厂,在 Beta 版中交付一个又一个的东西,但加起来并没有形成一个连贯的方向? 非信号: 职位空缺:我曾经跟踪初创公司职业页面的长度,以此来衡量它们的表现——一个很棒的领先指标,可以判断初创公司是否刚刚获得一轮大笔融资,那就是职位空缺的突然翻倍。无论这在过去是否有任何价值,它在今天肯定没有价值,因为初创公司都专注于效率,不招聘和招聘一样都是一个好兆头;因此这只是一个非信号。 内部标志 透明度:随着公司变坏,backpatty 事件、全体员工、公告和电子邮件的数量将呈下降趋势,因为可报告的好消息较少。创始人至少不做一次“国情咨文”(如果规模较小,则为季度;如果规模较大,则为年度),这是一个很大的危险信号。 “目标下移”是透明度下降的一个先行指标,其中更有意义但看起来不再那么好的指标被替换为不太有意义但看起来仍然不错的指标。留意诱饵和转换 – 不要生气,因为这种情况发生在我们所有人身上。 人们:与上面的“外部可见”点类似,但这次是根据您对他们的工作和机会集的了解来过滤“有能力的人”(无能力的人离开是一个无信号)。这显然更主观,但在公司内部,你往往可以更清楚地了解公司中的“优秀人才”是否自愿离开。 顾客:客户流失率上升(又称客户离开)是一个明显的负面信号。除此之外,如今大多数初创公司都在内部公开分享收入数据,所以这应该不足为奇,但有一个半量化的“收入质量”概念,只有当你看过去的标题数字时,你才能得到这个概念。诚实地了解您的收入是否来自以十美分的价格出售一美元的服务,以及新销售的价值主张是否越来越依赖于不可持续的承诺。 NPS/PMF 分数:我会第一个说 NPS…

  • Manton Reece – একাধিক অ্যাপ বা একটি সুপারঅ্যাপ

    জন গ্রুবার ওপেনএআই সম্পর্কে ব্লগিং সম্ভবত তাদের সমস্ত অ্যাপ একত্রিত করে: অ্যাপলের পক্ষে সাফারি, বার্তা এবং এক্সকোডকে একটি “সুপারঅ্যাপ”-এ একত্রিত করা কি কোন অর্থবহ হবে? না, তা হবে না। ওপেনএআই-এর জন্য ChatGPT, কোডেক্স এবং বিশেষ করে অ্যাটলাসকে একত্রিত করা আর কোন অর্থে হয় না। আমি ChatGPT ব্যবহার করি এবং খুব উপভোগ করি কারণ এর ম্যাক…

  • お気に入り 5: 双極性障害の代表者によるクィア フィクション

    Girl on the Line by Faith Gardner (YA) The Golden Boy’s Guide to Bipolar by Sonido Reyes (YA) until the Clock Strikes Midnight by Alechia Dow (YA) Black Iris by Elliot Wake w/a Leah Raeder Cursebreakers by Madeleine Middle ボーナス: 短編小説については、Unbroken 編の Kristine Wyllys 著「The Ballad of Weary Daughters」をチェックしてください。マリケ・ナイカンプ著(YA) Source link

  • جائزہ: شمسی (Ian McEwan) – جواب لکھیں پڑھیں

    ایان میکونز شمسی نوبل انعام یافتہ طبیعیات دان مائیکل بیئرڈ کے مراکز جن کا بہترین سائنسی کام ماضی میں مضبوطی سے ہے۔ اپنی ساکھ پر بینکنگ کرتے ہوئے، بیئرڈ مہنگے لیکچر دیتے ہیں، اپنا نام ادارہ جاتی لیٹر ہیڈز پر دیتے ہیں، اور نیم دل سے ایک حکومتی حمایت یافتہ اقدام کی قیادت کرتے ہیں…

  • एलएलएम-ओपनराउटर 0.6

    मुक्त करना: एलएलएम-ओपनराउटर 0.6 llm openrouter refresh कैश समाप्त होने की प्रतीक्षा किए बिना उपलब्ध मॉडलों की सूची को ताज़ा करने का आदेश। मैंने यह सुविधा जोड़ी ताकि मैं किमी 2.6 को ओपनराउटर पर आज़मा सकूं जैसे ही यह वहां उपलब्ध हो। यहां इसका पेलिकन है – इस बार एक HTML पेज के रूप में…

  • غیر سنایا

    کچھ عرصے سے مضامین کا ایک جوڑا میرے سر میں گھوم رہا ہے۔ سب سے پہلے اکتوبر سے Kyle Chayka ہے، “TextEdit and ریلیف آف سادہ سافٹ ویئر” میں: پچھلے کچھ سالوں میں، میں نے اپنے آپ کو TextEdit پر زیادہ انحصار کرتے ہوئے پایا ہے کیونکہ ہر دوسری ایپ زیادہ پیچیدہ ہو گئی ہے،…

Deixe um comentário

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