- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Django Rest Framework 模块分块发送大文件 drf-chunked-upload .
但是按照典型用法部分并在过去两天尝试了多种方法,我找不到办法做到这一点。
我做的第一件事是使 ChunkedUpload
模型具体化,以便在我的项目中使用它,然后进行并运行与之相关的迁移。
之后,我设置了 url
以在 urls.py
中发出请求:
url(r'^uploadchunks/$', ChunkedUploadView.as_view())
现在,我可以按照 Github 项目主页中的典型用法部分第 1 项向 API 发出请求:
An initial PUT request is sent to the url linked to ChunkedUploadView (or any subclass) with the first chunk of the file. The name of the chunk file can be overriden in the view (class attribute field_name)
使用 httpie发出我运行的请求(整个文件有 32095676 字节,我当时发送 10000000):
http -a <username>:<password> -f PUT http://127.0.0.1:8000/uploadchunks/ file@~/<first_filechunk> filename='file' 'Content-Range: bytes 0-10000000/32095676'
之后我得到错误:
django.urls.exceptions.NoReverseMatch: Reverse for 'chunkedupload-detail' with arguments '()' and keyword arguments '{'pk': UUID('a6b2f690-1653-4821-bcfd-b0edce60948a')}' not found. 0 pattern(s) tried: []
虽然典型用法部分的第 2 项说我们应该收到响应:
In return, the server will respond with the url of the upload, the current offset, and when the upload will expire (expires). Example:
{
"url": "https://your-host/<path_to_view>/5230ec1f59d1485d9d7974b853802e31",
"offset": 10000,
"expires": "2013-07-18T17:56:22.186Z"
}
我一直想知道上面的错误消息是否指的是缺少 View (ChunkedUploadDetailView?),所以我使用基本代码创建了该 View :
class ChunkedUploadDetailView(generics.RetrieveAPIView):
queryset = ChunkedUpload.objects.all()
serializer_class = ChunkedUploadSerializer
使用 url 配置
url(r'^uploadchuncks/(?P<pk>.*)/$', views.ChunkedUploadDetailView,
name='chunkedupload-detail')
现在,我可以发送第一个文件 block ,并收到响应:
HTTP/1.0 200 OK
Allow: GET, POST, PUT, HEAD, OPTIONS
Content-Type: application/json
Date: Fri, 03 Mar 2017 19:20:46 GMT
Server: WSGIServer/0.2 CPython/3.6.0+
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"completed_at": null,
"created_at": "2017-03-03T19:20:46.502345Z",
"file": "http://127.0.0.1:8000/uploadchunks/chunked_uploads/2017/03/03/1c469fab-1d0c-4c14-84b3-0d51aa36c8f2.part",
"filename": "file0",
"id": "1c469fab-1d0c-4c14-84b3-0d51aa36c8f2",
"offset": 10000000,
"status": 1,
"url": "http://127.0.0.1:8000/uploadchuncks/1c469fab-1d0c-4c14-84b3-0d51aa36c8f2/",
"user": 2
}
来自 httpie
。
所以,我认为我的方法是正确的,但现在当我按照典型用法部分的第三项操作时:
Repeatedly PUT subsequent chunks to the url returned from the server. Example:
# PUT to https://your-host//5230ec1f59d1485d9d7974b853802e31
{ "my_file": file }
然后我跑:
http -a indc:indc@indc -f PUT http://127.0.0.1:8000/uploadchunks/1c469fab-1d0c-4c14-84b3-0d51aa36c8f2/ file@~/Downloads/<second_filechunk> filename='file' 'Content-Range: bytes 10000000-20000000/32095676'
发送第二个文件 block 时出现 shell 错误:
http: error: ConnectionError: ('Connection aborted.', BrokenPipeError(32, 'Broken pipe')) while doing PUT request to URL: http://127.0.0.1:8000/uploadchunks/1c469fab-1d0c-4c14-84b3-0d51aa36c8f2/
并且,在 django 虚拟服务器中:
Not Found: /uploadchunks/1c469fab-1d0c-4c14-84b3-0d51aa36c8f2/
[03/Mar/2017 16:29:22] "PUT /uploadchunks/1c469fab-1d0c-4c14-84b3-0d51aa36c8f2/ HTTP/1.1" 404 4788
模块似乎找不到关联的模型实例pk=1c469fab-1d0c-4c14-84b3-0d51aa36c8f2
。
所以我被困在这里两天了。
由于我是一名新的 python/django 开发人员,直到现在我还找不到解决问题的方法。在我看来,有些部分我必须实现,但我不知道为什么。
如果有人已经使用过 drf-chunked-upload,并且知道我缺少什么,我很感激任何帮助。
最佳答案
在 url 中,我看到您在某些地方拼写了“uploadchunks”,在其他地方拼写了“uploadchunks”。这可能是原因。
关于python - Django Rest Framework 模块 drf-chunked-upload - 上传 block 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42587887/
我正在尝试使用 Node js 服务将 .json 文件的内容获取到 angularjs 方法中。但是我得到以下错误: _http_outgoing.js:700 throw new ERR_INVA
我使用的是 npm 版本 6.0.1。我的操作系统是 macOS High Sierra 版本 10.13.3 我想构建我的项目,但收到此错误消息: Creating an optimized pro
import numpy as np from matplotlib import pyplot as plt import scipy.io.wavfile as wav from numpy.li
下面是一段c++代码: Chunk * _chunk = new (size) Chunk(size); 我不明白'new'后面的第一个'(size)',它是什么意思?以上代码来自JDK8。 最佳答案
我有一个 RSS 提要。当我在打开 Fiddler Web Debugger 的情况下浏览提要时,Fiddler 向我抛出此错误: Chunked body did not terminate pro
当我运行脚本 npm run watch 时出现此错误 cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --wat
我在尝试启动我的应用程序时看到以下错误... > css-modules@1.0.0 start /Users/johnnynolan/Repos/css-modules webpack && ope
我正在使用 MVC 6 rc1 和 EF 7 rc 1 Code First 模型通过 Web API Controller 检索数据。我有 3 个类似于下面的表。 class Product {
我在一个 txt 文件中有以下数据: 00001+++00001 000031 12.8600 -1 7 BEAR 1990052418 276.0
我正在试用 RestAssured 并编写了以下语句 - String URL = "http://XXXXXXXX"; Response result = given().
我在 RMarkdown 文档中有一个块,如下所示: ```{r, echo=-4} a <- 1 b <- 2 x <- a + b print(paste(c("`x` is equal to "
这个迭代器 let data = vec![0, 1, 2, 3, 4, 5]; for x in data.chunks(2) { println!("{:?}", x); } 会产生 [0
flock() 的 PHP 文档页面表明在IIS下使用不安全。如果我不能在所有情况下都依赖 flock,是否有其他方法可以安全地实现同样的目标? 最佳答案 在所有想象的可能情况下,没有其他方法可以安全
我正在开发一个 Android 示例应用程序,它从 http://www.omdbapi.com/ 获取电影列表. REST 服务是: http://www.omdbapi.com/?s=star&a
我正在寻找 MemoryStream 的实现,它不会将内存分配为一个大块,而是一组 block 。我想在内存(64 位)中存储几 GB 的数据,并避免内存碎片的限制。 最佳答案 像这样: class
我们有一个 React 应用程序,它使用 React.lazy 和 Suspend 进行代码拆分。每个星期二我们都会部署一个新版本,因此我们的 block 也会发生变化。 我们现在遇到的问题是,如果我
我对Laravel的ORM Eloquent chunk()方法有疑问。 它错过了一些结果。 这是一个测试查询: $destinataires = Destinataire::where('statu
我需要知道是否可以将 iTextSharp 中的两个 Chunk 组合起来 Phrase phrase = new Phrase(); var text1 = new Chunk("hello");
我正在使用播放框架来生成分块响应。代码是: class Test extends Controller { public static void chunk() throws Interrup
这个问题已经有答案了: Split array into chunks (80 个回答) 已关闭 5 年前。 我正在尝试在 JavaScript 中实现一个类似于 lodash chunk 的 blo
我是一名优秀的程序员,十分优秀!