我正在开发http客户端/服务器框架,并寻找处理部分上传的正确方法(与使用带有Range标头的GET方法的下载相同).
但是,HTTP PUT不打算恢复.我知道,PATCH方法不接受Range标头.
有没有办法通过HTTP标准处理这个(不使用扩展标题或其他)?
提前致谢.
Ste*_*ich 12
我认为部分上传没有标准:
如果你看一下Dropbox,谷歌驱动器等的协议,他们都会推出自己的协议,以便在多个块中传输单个文件.恢复上传所需的是
PATCH 将是选择可恢复上传的逻辑方法:它需要指示如何更改目标资源的媒体类型。虽然没有具体定义为执行修补的格式,multipart/byteranges但指定了字节范围和该范围的内容,使其适合 PATCH 有效负载的良好定义。
例子:
\nPATCH /document HTTP/1.1\nContent-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES\n\n--THIS_STRING_SEPARATES\nContent-Type: text/plain\nContent-Range: bytes 10-21/22\n\n1234567890\n--THIS_STRING_SEPARATES--\nRun Code Online (Sandbox Code Playgroud)\n此示例以十字节偏移量上传十二个字节。THIS_STRING_SEPARATES是一个任意的、用户选择的分隔符,并且应该是随机生成的。为了简洁起见,省略了一些标题,每行以 \xe2\x90\x8d\xe2\x90\x8a 结尾。