问题如上所述。虽然有很多关于使用 django Rest 框架上传文件的教程。没有人提到它的可恢复版本。我需要在一个项目中实现它。有人可以向我指出一些资源或提供示例代码吗?非常感谢您的帮助。
更新
这是我到目前为止所得到的。
视图.py
class FileUploadView(views.APIView):
parser_classes = (FormParser, MultiPartParser)
def put(self, request, format=None):
file_obj = request.data['file']
self.handle_uploaded_file(file_obj)
return Response(status=204)
def handle_uploaded_file(self, ufile):
filename = "{0}/{1}".format(settings.MEDIA_ROOT, ufile)
with open(filename, "wb+") as target:
for chunk in ufile.chunks():
target.write(chunk)
Run Code Online (Sandbox Code Playgroud)
卷曲命令
curl -H "Content-Disposition: attachment; filename=try.py" -X PUT -F "file=@try.py" http://localhost:8000/api/fileupload/?filename=testing
Run Code Online (Sandbox Code Playgroud)
尝试.py
from django.test import TestCase
# Create your tests here.
Run Code Online (Sandbox Code Playgroud)
下一部分是如何使其可恢复。
我正在尝试创建一个芹菜任务,用于在将图像存储到Amazon S3之前上传和调整图像大小.但它没有按预期工作.没有任务,一切都运转正常.这是到目前为止的代码:
堆栈跟踪
Traceback (most recent call last):
File "../myVE/lib/python2.7/site-packages/kombu/messaging.py", line 579, in _receive_callback
decoded = None if on_m else message.decode()
File "../myVE/lib/python2.7/site-packages/kombu/transport/base.py", line 147, in decode
self.content_encoding, accept=self.accept)
File "../myVE/lib/python2.7/site-packages/kombu/serialization.py", line 187, in decode
return decode(data)
File "../myVE/lib/python2.7/site-packages/kombu/serialization.py", line 74, in pickle_loads
return load(BytesIO(s))
File "../myVE/lib/python2.7/site-packages/werkzeug/datastructures.py", line 2595, in __getattr__
return getattr(self.stream, name)
File "../myVE/lib/python2.7/site-packages/werkzeug/datastructures.py", line 2595, in __getattr__
return getattr(self.stream, name)
...
RuntimeError: maximum recursion depth exceeded while calling a Python object
Run Code Online (Sandbox Code Playgroud)
views.py
from PIL import Image
from …Run Code Online (Sandbox Code Playgroud)