Re: Resumable Upload draft updates

Marius Kleidl <marius@transloadit.com> Thu, 25 July 2024 11:39 UTC

Received: by ietfa.amsl.com (Postfix) id 87C7BC19ECBE; Thu, 25 Jul 2024 04:39:25 -0700 (PDT)
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 870C6C180B70 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 04:39:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.857
X-Spam-Level:
X-Spam-Status: No, score=-2.857 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="RSYL6wo6"; dkim=pass (2048-bit key) header.d=w3.org header.b="Fz7omDk7"; dkim=pass (1024-bit key) header.d=transloadit.com header.b="XCg62UgN"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6TlNrzeGPXS6 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 04:39:21 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87DA3C180B68 for <httpbisa-archive-bis2Juki@ietf.org>; Thu, 25 Jul 2024 04:39:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:Cc:To:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=kI60ueK2n9ASmyXEHYBwLJs3dPub9FwQl4aBxe8kcwc=; b=RSYL6wo6MS/9Bn72NNbjwAqlrp 7kOudi1gj2BEn3DFjvNpHMvMmu01lhK6cVrqRTpJNRukP6b/AigiCEoWICIXIJ+gCyHxB5XPBu48K C3YbA2QKLGy+XVdp3Z+C7LnGZzYIxCvrcIlbEZ+aJUy6e2W8L7X9yIpqluTNjq2shRc8cYXEkFOZR 2YajnM6T17oXw/mbkvcnUKWCAxqVSFliCwB/zEsSri1XGdQeWkg7TuKVQRP2+VkWqLxpiCMoMZgc5 jeDHIpCJ91XjyDXR5WoXz/Fqx26dviXEz78jTcB1tL4pq28qCr01qPcjwTDjx3DgPeXYOs8uBbFfl qsnyWR+Q==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sWwoC-006szI-0I for ietf-http-wg-dist@listhub.w3.org; Thu, 25 Jul 2024 11:38:56 +0000
Resent-Date: Thu, 25 Jul 2024 11:38:56 +0000
Resent-Message-Id: <E1sWwoC-006szI-0I@mab.w3.org>
Received: from ip-10-0-0-144.ec2.internal ([10.0.0.144] helo=pan.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <marius@transloadit.com>) id 1sWwo8-006syM-0q for ietf-http-wg@listhub.w3.internal; Thu, 25 Jul 2024 11:38:52 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=kI60ueK2n9ASmyXEHYBwLJs3dPub9FwQl4aBxe8kcwc=; t=1721907532; x=1722771532; b=Fz7omDk7auP1BJI7ZO5hMv/ij6GsxknYrmEsacjH14jLVXWmVrFahg5vUvDjzrrKKeP+IXO37BC 6Yb0qXmQUExtRbqBAntqE6fKOErGZz3tglPUXm4sD8uCr0JYbk6u9j89O4pqdz4jbiv8nyoEsU9JF cQ602R1tSMgfGC4P2fQxSPND3FSm2dMheHP/yQVhQFxKAvaWODcyP1MOfrzocsSRGh8R0T1kg8U63 mmajY9sZoQlazbgOYgHH/OUqbPrTp7ERLu9cf8ruFRhiD+e95szTHtWMTfuY8p1RQ3Sa9DmRfHeRW hLHs/6tcGVgY6TZ1fT7KObkKTCYcLit733Ng==;
Received-SPF: pass (pan.w3.org: domain of transloadit.com designates 2a00:1450:4864:20::331 as permitted sender) client-ip=2a00:1450:4864:20::331; envelope-from=marius@transloadit.com; helo=mail-wm1-x331.google.com;
Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by pan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <marius@transloadit.com>) id 1sWwo7-00CmeS-1t for ietf-http-wg@w3.org; Thu, 25 Jul 2024 11:38:52 +0000
Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-427cede1e86so6652665e9.0 for <ietf-http-wg@w3.org>; Thu, 25 Jul 2024 04:38:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=transloadit.com; s=google; t=1721907527; x=1722512327; darn=w3.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kI60ueK2n9ASmyXEHYBwLJs3dPub9FwQl4aBxe8kcwc=; b=XCg62UgN+xjVqZWqT3D1UsUBbAyFZJLxx0zkQpexNdvJvVvVKpBGQGH3J4R9w6GD8n HKCn4pFgN4EqqAR3JMVXvrHOCZG7SmMbCgatvQEKrO6nKxWgfAdXEGU/Y/xsSxsRVrUp 8h+2w2a8Dg0WXQR7Iv567liwlGrgciQN1Tmys=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721907527; x=1722512327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kI60ueK2n9ASmyXEHYBwLJs3dPub9FwQl4aBxe8kcwc=; b=mdaoZOliP0MfCWdse99LoyFflDh1nl6iYmhGvuPIbxDDDn7dlGHy2n07iwuKKUNyks mdN7vU+6WlEFdMIVPsh6HU7q3IqG8VQncx2QQyJIAj94lN/xY9MOeNoV2K0BHShw6Y2Q LWB5iawpotUnFP+dzEhBJdI6DQwi9XaRj/B5TxCmiqSrOXfDetEzFfB+5YyaljXk60Ik vwHs4k1DPIYj1W68YOYKE98jB5LpduMGi44s3lkbadMnJjFzUkKOc4jdMZl1QFIWndQq fxzSKE4CFekN9UccZQGPaBckB2NJi59nfqzhUynTLmPCbiJQ9LSAE9JfQkv9ELYzihO0 y4RA==
X-Gm-Message-State: AOJu0YwoXYqhCf1/e9QQ1NJowSnRah6tUAKli7zmekuTAV1rsseuvfUu 5fd+PYzeZXrSuSZPc5/oBozuRuTudyc6tkiqiE72V8OGqhsfvLBGqVJzOTGK6HEfOr9vBsvQQcm kChnFfUpi9sH9X365c21Ei+74KaJ3n45vhwJDyw==
X-Google-Smtp-Source: AGHT+IFO5iqCgfqoFw2L9+vu/1lvZuJLZCh+tQzMRX7vXB2FASkvvS9AhZNocSAGt29FsBWU0xg6QT9ubaWIvh+XEyQ=
X-Received: by 2002:a05:600c:3ca4:b0:426:6a84:2087 with SMTP id 5b1f17b1804b1-42806be9539mr13632215e9.34.1721907527347; Thu, 25 Jul 2024 04:38:47 -0700 (PDT)
MIME-Version: 1.0
References: <CANY19Ns76du=x04xtejdRrdNT2Lq_=5Huo5oH_KQ9qg5bAO89A@mail.gmail.com> <29911fc7-cfa3-4ea4-8ee0-822781060fa5@gmail.com> <CANY19Nt5XSjNguTY2poHvdLQF7p=TAEb1hX1p=ZS2siMCf-U0Q@mail.gmail.com> <efb367a4-2abe-4daa-b94c-f0a62a3415ae@gmail.com>
In-Reply-To: <efb367a4-2abe-4daa-b94c-f0a62a3415ae@gmail.com>
From: Marius Kleidl <marius@transloadit.com>
Date: Thu, 25 Jul 2024 13:38:36 +0200
Message-ID: <CANY19Nu4W_jGBbNmC84r=LRzKmknX9P4Sfe59TO8LPesZHQ++w@mail.gmail.com>
To: Michael Toomim <toomim@gmail.com>
Cc: ietf-http-wg@w3.org
Content-Type: multipart/alternative; boundary="000000000000810eb7061e10d6f6"
X-W3C-Hub-DKIM-Status: validation passed: (address=marius@transloadit.com domain=transloadit.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-4.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: pan.w3.org 1sWwo7-00CmeS-1t 85f52f19f4ad649512fa5ece47ff85a7
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Resumable Upload draft updates
Archived-At: <https://www.w3.org/mid/CANY19Nu4W_jGBbNmC84r=LRzKmknX9P4Sfe59TO8LPesZHQ++w@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52137
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: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi Micheal!

> To best-support streaming resources of unknown length, we could
articulate more into the Version-Type. For instance, we could define a
special version ID called "end" that signals the end of a bytestream.

It's interesting to see that our efforts converge to similar approach, even
if they use different terminology. But it's reassuring that this is a
sensible method for enabling resumable uploads :)



On Thu, Jul 25, 2024 at 1:15 PM Michael Toomim <toomim@gmail.com> wrote:

> Marius, these are excellent questions! I am answering them inline below:
>
> 1. What is the parent version of a resource that a client is uploading to?
> Requests have to set this header to ensure they are appending at the
> correct offset, but I am wondering what parent version would be included in
> responses to HEAD requests. The example responses in section 3.3 always use
> the 0 byte count.
>
> Ah, yes... Well, the parent header is actually redundant in that case— so
> I'm removing it from the example.
>
> There, I think this
> <https://github.com/braid-org/braid-spec/commit/9e9485cdd4d2adcb0e7898b13919b06dc12ec496>
> is clearer now. How about you?
>
> 2. Can a client upload from a streaming data source without knowing the
> entire file size upfront? Is the including of the Current-Version header
> mandatory when starting an upload?
>
> To best-support streaming resources of unknown length, we could articulate
> more into the Version-Type. For instance, we could define a special version
> ID called "end" that signals the end of a bytestream.
>
> Then the initial request might look like this:
>
> PUT /something
> Current-Version: "end"
> Version-Type: bytestream
> Content-Length: 900
>
> <binary data of length 900>
>
> Then the client could break up the file into multiple requests, e.g. by
> choosing a smaller number than 900 above, like you ask here:
>
> 4. Does the method allow the client to split an upload across multiple
> requests? In our experience, servers can have an upper limit on the size of
> a single request, which requires a client to split an upload and send
> multiple consecutive requests to transfer the entire file.
>
> Good question! I had to think on my feet to answer this one. :)
>
> Finally, as for Content-Range:
>
> 3. The example request for case B in section 3.3.2 includes the
> Content-Range header, which appears redundant. Does its value carry
> additional information that is not covered by Parents, Current-Version or
> Content-Length?
>
> You're right that this is redundant information, but it might be useful
> for a Proxy that doesn't understand the bytestream version-type. It could
> still cache this range of the file! That's one of the cool things about
> re-using other headers and concepts. :)
>
> These are such illustrative questions! It's really nice talking to other
> people who think about these things. :) Thanks for doing so!
>
> Michael
>