Re: Resumable Uploads

Felix Geisendörfer <felix@transloadit.com> Mon, 22 April 2013 07:59 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7553921F8E2C for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 22 Apr 2013 00:59:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.526
X-Spam-Level:
X-Spam-Status: No, score=-9.526 tagged_above=-999 required=5 tests=[AWL=0.150, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Uy5nXuC8qd2M for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 22 Apr 2013 00:59:40 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 202D521F8CDD for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 22 Apr 2013 00:59:39 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UUBdk-00038E-Sd for ietf-http-wg-dist@listhub.w3.org; Mon, 22 Apr 2013 07:58:20 +0000
Resent-Message-Id: <E1UUBdk-00038E-Sd@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <ylafon@w3.org>) id 1UUBdg-00037Y-Gt for ietf-http-wg@listhub.w3.org; Mon, 22 Apr 2013 07:58:16 +0000
Received: from jay.w3.org ([128.30.52.169]) by lisa.w3.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <ylafon@w3.org>) id 1UUBdg-00010D-F2 for ietf-http-wg@w3.org; Mon, 22 Apr 2013 07:58:16 +0000
Received: from ylafon by jay.w3.org with local (Exim 4.72) (envelope-from <ylafon@w3.org>) id 1UUBdg-00078V-Aj for ietf-http-wg@w3.org; Mon, 22 Apr 2013 03:58:16 -0400
X-Return-path: <>
X-Received: from maggie.w3.org ([128.30.52.39]) by jay.w3.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) id 1UTCzp-0000PH-El for ylafon@jay.w3.org; Fri, 19 Apr 2013 11:13:05 -0400
X-Received: from frink.w3.org ([128.30.52.56]) by maggie.w3.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) id 1UTCzp-0001oI-At for ylafon@w3.org; Fri, 19 Apr 2013 15:13:05 +0000
X-Received: from lists by frink.w3.org with local (Exim 4.72) id 1UTCzp-0000b4-48 for ylafon@w3.org; Fri, 19 Apr 2013 15:13:05 +0000
Date: Fri, 19 Apr 2013 15:13:05 +0000
X-From_: felix.geisendoerfer@transloadit.com Fri Apr 19 15:13:02 2013
X-Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <felix.geisendoerfer@transloadit.com>) id 1UTCzm-0000aS-Rn for ietf-http-wg@listhub.w3.org; Fri, 19 Apr 2013 15:13:02 +0000
X-Received: from mail-vb0-f47.google.com ([209.85.212.47]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <felix.geisendoerfer@transloadit.com>) id 1UTCzl-0001nQ-Pb for ietf-http-wg@w3.org; Fri, 19 Apr 2013 15:13:02 +0000
X-Received: by mail-vb0-f47.google.com with SMTP id x13so3718832vbb.20 for <ietf-http-wg@w3.org>; Fri, 19 Apr 2013 08:12:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:sender:x-originating-ip:in-reply-to :references:from:date:x-google-sender-auth:message-id:subject:to:cc :content-type:x-gm-message-state; bh=aRwChnsBRDwxijJIqstFfUlyaKSagqb/1v+uP4BAnPU=; b=CpnYLSVQhfSTzTeVk6zn+9rmSb+4Gh6BNu/yeF5NvUsnPhQBId6Ue1j0/FHpS+kjuY FMyvdIpQn5oG6JlWIjuAijx3Q8TCAHa53050c3e1Tu+JfoVUQ0pnq3b34Z0bCHYWVdqW dOxuD7Hr9YXogwvmFQdABQoGPBmA0MxlwU99WzY/fq8m1+085osNU+d4jkSER4oYHpue C3AOQ18o0BYwxQpWsA2Pq/XPXvSd0/uj7oNw/5xgUHhClKIYdXpy10OIBU0j3alXlwyZ wgLl5rd9P2vCHXg3ES4Gwc+EAqlkhEFrApT4Kn3+FjUcNDHUoBXcKXgP+CmR+XQu0qpd 72YA==
X-Received: by 10.52.68.51 with SMTP id s19mr10069135vdt.92.1366384355970; Fri, 19 Apr 2013 08:12:35 -0700 (PDT)
MIME-Version: 1.0
Sender: felix.geisendoerfer@transloadit.com
X-Received: by 10.58.15.165 with HTTP; Fri, 19 Apr 2013 08:12:15 -0700 (PDT)
X-Originating-IP: [91.64.81.5]
In-Reply-To: <alpine.DEB.2.00.1304191335410.3525@tvnag.unkk.fr>
References: <CADZbJ9dYFGyrceh03M3B0KdKto7160Dis_geh9um0BhVe1re0g@mail.gmail.com> <alpine.DEB.2.00.1304182006001.21288@tvnag.unkk.fr> <29DE6A70-E3B9-4DCE-8C7E-506F6A0ADC92@gmail.com> <51706F32.5030108@panix.com> <5170E2A3.6010706@gmx.de> <CADZbJ9dGEVq-fQmhjRsddYdcg459r_zLfrOddkzHLOprZM0dNg@mail.gmail.com> <51712A49.6000901@gmx.de> <alpine.DEB.2.00.1304191335410.3525@tvnag.unkk.fr>
From: Felix Geisendörfer <felix@transloadit.com>
Old-Date: Fri, 19 Apr 2013 17:12:15 +0200
X-Google-Sender-Auth: DXlXhzvInoTABsudMaVetcdbQms
Message-ID: <CADZbJ9d_9wirsYPt=1frY5UiaOnaaB1v=hGMuPR2e5yXV6m+NA@mail.gmail.com>
To: Daniel Stenberg <daniel@haxx.se>
Cc: Julian Reschke <julian.reschke@gmx.de>, Albert Lunde <atlunde@panix.com>, Kevin Swiber <kswiber@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, Yves Lafon <ylafon@w3.org>
Content-Type: multipart/alternative; boundary="bcaec50165a32a4e5004dab826f4"
X-Gm-Message-State: ALoCoQmKvqoGs2w99g07kNsKB1fcqIXJj2dRmj/Kkypj7z9xm307kR8AePSiKm8E1u9K2PAP3tE1
Received-SPF: none client-ip=209.85.212.47; envelope-from=felix.geisendoerfer@transloadit.com; helo=mail-vb0-f47.google.com
X-W3C-Hub-Spam-Status: No, score=-4.9
X-W3C-Hub-Spam-Report: AWL=-4.173, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7
X-W3C-Scan-Sig: maggie.w3.org 1UTCzl-0001nQ-Pb bf5a9a8f59c94f8462c55f9391bf6a15
Old-X-Envelope-To: ietf-http-wg
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Fri Apr 19 11:14:24 2013
X-DSPAM-Confidence: 0.9991
X-DSPAM-Improbability: 1 in 115830 chance of being spam
X-DSPAM-Probability: 0.0000
X-DSPAM-Signature: 51715f5015731804284693
ReSent-Date: Mon, 22 Apr 2013 03:58:11 -0400
ReSent-From: Yves Lafon <ylafon@w3.org>
ReSent-To: ietf-http-wg@w3.org
ReSent-Subject: [Moderator Action] Re: Resumable Uploads
ReSent-User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Resumable Uploads
Archived-At: <http://www.w3.org/mid/CADZbJ9d_9wirsYPt=1frY5UiaOnaaB1v=hGMuPR2e5yXV6m+NA@mail.gmail.com>
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17461
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Thanks for the additional insights.

And if PATCH is ruled out because how browser APIs, I guess only POST is
> left.


Actually, PATCH could work great if there was an appropiate header to
indicate the offset. Example of resuming an upload that was interrupted
after 20 bytes:

POST /file/my.jpg
Content-Length: 100

<file data … interrupted after 20 bytes>

HEAD /file/my.jpg

HTTP/1.1 200 OK
Offset: 20

PATCH /file/my.jpg
Content-Length: 80
Offset: 20

<file data>

I realize RFC 5789 defines the request body as a "patch document", but it
creates a lot of complexity for this use case.

Cheers,
--
Felix Geisendörfer (felixge.de)
Co-Founder, Transloadit (transloadit.com)