Re: [media-types] Feedback on a potential media type for upload chunks

Mark Nottingham <mnot@mnot.net> Wed, 06 March 2024 21:51 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: media-types@ietfa.amsl.com
Delivered-To: media-types@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CBC0FC14F61B for <media-types@ietfa.amsl.com>; Wed, 6 Mar 2024 13:51:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, 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=mnot.net header.b="Ef2C7zqr"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="FKdX0/aE"
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 I4Jvmk5WYtfC for <media-types@ietfa.amsl.com>; Wed, 6 Mar 2024 13:51:19 -0800 (PST)
Received: from fout7-smtp.messagingengine.com (fout7-smtp.messagingengine.com [103.168.172.150]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4AA1AC14F5E6 for <media-types@ietf.org>; Wed, 6 Mar 2024 13:51:19 -0800 (PST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfout.nyi.internal (Postfix) with ESMTP id 81C0E13800AB; Wed, 6 Mar 2024 16:51:18 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Wed, 06 Mar 2024 16:51:18 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1709761878; x=1709848278; bh=egdR4aeBk+qLwbyIe0vhxe9680/S2ebOIgm+vu/d42c=; b= Ef2C7zqrl0O60c8Y38OPPmyn84YVlzxG/HwELusEKDSci5vMli6xEoIabKF3TlBu MUx8dzcI5rYcd0HSkIPCxmrqIenHF1HccNeqByhDZYDTTV9bQZQwmYSfHjoHn8A2 bB4O8maowhMKLRIC5cLe0cCY6vuTTag0I9TzCXblRcqDCwRC/gK9g3eT8GqFUAzI Q0qunkS4pFQacjKBML2Hnh/GJQvC12w7eH5o0Hj45lhFLJlz4Y6qgjDzHe46gWoA vWvgdyXWghH+91xNi1d8+YdpqL7c+k0AXxnzlrhZvqZRoeZzWDDavSarE2HO1iI+ W7PnqR/2hodaTxxju1c0OA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1709761878; x= 1709848278; bh=egdR4aeBk+qLwbyIe0vhxe9680/S2ebOIgm+vu/d42c=; b=F KdX0/aEYBhQx4G4QOBl3D1fHPII8cV7XuVBjtclqJH0oAe2TYjZMnFwN5b1bguUm iqy5NkeB8IIkV8w+h4uzdeZwcjB1RkqyWDXpP9326CXSqwltNqrG/cRrzF1CIBix iM7ynuLp760xKVIiPjzKDQULgYYgm1yHlHNUCqPfWiwHC1EQoMUloG30vbMmlT2Q TH+sj0xkV8y3fMkqgoVEyFZs1pWOaQcQFkPIN+7TQcN1dG0CBaiZXLdBUttd17is +i1WIiprZt55a2LeLLo/kAyUvlMZUR99AIJJO+C23iXEv9HeGMnTdeg0bZ8HWSfz LV5eY7IUfX86roHdE0R3Q==
X-ME-Sender: <xms:VuXoZdO5v8fHzXmAw-sI4r7ReKAp29dZ__oG1rWEQKZBhSspleAn5A> <xme:VuXoZf_MD95Lit7_r42BDzdGfdLrapwS9ROLGTA1m8TPzt3Tc8jWJcSWHu2m8m6NQ rH4Q3J-z4-rLomMaQ>
X-ME-Received: <xmr:VuXoZcS6W9MI2KKyumRMPIxQHMeQphMjZGhfeIq7KnCcFtIEvbIeMbkqgOFhORJrAz7KWxR55YVhBpmvU5n2AUSX8m-VrUc-mI_y_WTQ5FQVGNN3ZSFS_WmX>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledriedugdduhedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffvefgkfhfvffosehtqhhmtdhhtddvnecuhfhrohhmpeforghr khcupfhothhtihhnghhhrghmuceomhhnohhtsehmnhhothdrnhgvtheqnecuggftrfgrth htvghrnhepvddugfeihfeltddttefgvedvueehudehgfefveefjeeuvedutddvieelheek jedvnecuffhomhgrihhnpehrfhgtqdgvughithhorhdrohhrghdpihgvthhfrdhorhhgpd hirghnrgdrohhrghdpmhhnohhtrdhnvghtnecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomhepmhhnohhtsehmnhhothdrnhgvth
X-ME-Proxy: <xmx:VuXoZZsJbtGYj7ymhuZeTSWqFzeMPhfpBGaIZDuBzWHR_qOgaINYGA> <xmx:VuXoZVcdo4kQDHqYnIahACQHhZRYbDqW-WWR_zYNkKghAghtVkAqtQ> <xmx:VuXoZV1E6iVO8Euyrj9KQMmzC_7UFc-EUJQrbhYnnHR4UAtnPazp_g> <xmx:VuXoZWrenRAnhnkNNsQ9AntlF6R3N-__rStcpwKRMVR24ogQRCkSHQ>
Feedback-ID: ie6694242:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 6 Mar 2024 16:51:16 -0500 (EST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.400.31\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <b1873ef8-8ccb-435a-9dab-df629314e88f@alvestrand.no>
Date: Thu, 07 Mar 2024 08:51:13 +1100
Cc: media-types@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <3916F0BA-395F-4DD6-84EE-CFE147FA062C@mnot.net>
References: <CANY19Nuq1NROzfOytcVJFBMN5cSisPzt_YH6NxRRinjwLg1rkg@mail.gmail.com> <939d9892-9512-4685-9476-3546529d372b@alvestrand.no> <216EA7D9-692D-4AA3-9C59-47EAB7B5EE22@mnot.net> <b1873ef8-8ccb-435a-9dab-df629314e88f@alvestrand.no>
To: Harald Alvestrand <harald@alvestrand.no>
X-Mailer: Apple Mail (2.3774.400.31)
Archived-At: <https://mailarchive.ietf.org/arch/msg/media-types/IJlyYGSnT7clxDxCU6U9XdQzbjY>
Subject: Re: [media-types] Feedback on a potential media type for upload chunks
X-BeenThere: media-types@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IANA mailing list for reviewing Media Type \(MIME Type, Content Type\) registration requests." <media-types.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/media-types>, <mailto:media-types-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/media-types/>
List-Post: <mailto:media-types@ietf.org>
List-Help: <mailto:media-types-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/media-types>, <mailto:media-types-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Mar 2024 21:51:23 -0000

Yes, it's used by many APIs, etc.

Cheers,


> On 7 Mar 2024, at 03:55, Harald Alvestrand <harald@alvestrand.no> wrote:
> 
> 
> On 2/28/24 18:24, Mark Nottingham wrote:
>> PATCH _requires_ that the media type identifies the semantics of the body, so applciation/octet-stream is not suitable; it does not tell the receiving server what to do with those bytes.
>> 
>> See:
>>   https://www.rfc-editor.org/rfc/rfc5789.html#section-2
> 
> sigh ... I was hoping that application/octet-stream with range: would suffice for the simple case :-(
> 
> Is there any current deployment of PATCH in the wild?
> 
>> 
>> 
>> Cheers,
>> 
>> 
>>> On 28 Feb 2024, at 23:43, Harald Alvestrand <harald@alvestrand.no> wrote:
>>> 
>>> If the interpretation of a partial upload is simply a sequence of bytes, I would strongly suggest using application/octet-stream.
>>> 
>>> The semantics ("append this to the current upload") seem to be related to the request, not the media.
>>> 
>>> Some other considerations apply for files that are (for instance) uploaded in chunks, where each chunk is required to be semantically complete in some syntax (video frames for instance). In that case, registering a media type for "sequence of instances of type X that can usefully be concatenated with another sequence of instances of type X" - but this would strongly depend on exactly the file being transferred, not on the fact that this is done using a PATCH mechanism.
>>> 
>>> Hope this viewpoint is useful!
>>> 
>>> 
>>> On 2/26/24 20:01, Marius Kleidl wrote:
>>>> Dear working group,
>>>> in the HTTP working group, we are discussing a draft for resumable uploads over HTTP (https://datatracker.ietf.org/doc/draft-ietf-httpbis-resumable-upload/ <https://datatracker.ietf.org/doc/draft-ietf-httpbis-resumable-upload/>). Essentially, for each file that should be uploaded, a new upload resource is created on the server. The client can then append data to this upload resource by sending a PATCH request. If the transfer gets interrupted, the client can query the upload resource's current offset and then resume the upload by appending the remaining data using another PATCH request.
>>>> As required by RFC 5789, PATCH requests must include a media type to describe the message content. In the case of resumable uploads, the content is just a partial chunk from the file to be uploaded without any additional data included in the message content (no offset or length value). This chunk might be textual or binary depending on the file that should be uploaded (e.g. text file or video).
>>>> I didn't find a registered media type in the standards tree which matches those semantics. However, the vendor tree includes application/vnd.adobe.partial-upload (https://www.iana.org/assignments/media-types/application/vnd.adobe.partial-upload <https://www.iana.org/assignments/media-types/application/vnd.adobe.partial-upload>), which was registered by Adobe in 2009 for uploads in their web applications. Its intention seems to align with the content included in PATCH requests for resumable uploads.
>>>> Therefore, I am thinking about a standardized media type to describe partial chunks from an upload, such as application/partial-upload or application/upload-chunk and would love any feedback on that idea.
>>>> Best regards
>>>> Marius Kleidl
>>>> _______________________________________________
>>>> media-types mailing list
>>>> media-types@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/media-types
>>> _______________________________________________
>>> media-types mailing list
>>> media-types@ietf.org
>>> https://www.ietf.org/mailman/listinfo/media-types
>> --
>> Mark Nottingham   https://www.mnot.net/
>> 

--
Mark Nottingham   https://www.mnot.net/