我有一个内置于Django的应用,目前已部署在Google App Engine上。一切正常,除了我要上传大于32MB的文件时。我收到一条错误消息,说:413。这是一个错误。
我一直在做一些研究,后来我意识到必须使用Google App Engine的Blobstore API。我不知道如何在我的Django应用程序中实现它。
目前,我的代码看起来像这样:
型号:
class FileUploads(models.Model):
title = models.CharField(max_length=200)
file_upload = models.FileField(upload_to="uploaded_files/", blank=True, null=True)
表格:
class UploadFileForm(forms.ModelForm):
class Meta:
model = FileUploads
fields = ["title", "file_upload"]
查看:
def upload_file(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.save()
form = UploadFileForm()
return render(request, "my_app/templates/template.html", {"form": form})
一切正常。我只想知道如何在当前代码结构上实现Google App Engine's Blobstore API以启用大文件上传。
来自Google Cloud Official Documentation:
存在一些特定于Blobstore API使用的限制。
应用程序可以通过一个API调用读取的Blobstore数据的最大大小为32兆字节。
] >>- ] >>
单个POST形式可以上传的最大文件数为500。
您的代码看起来不错,由于Blobstore API配额和限制,这是预期的错误。我知道的唯一解决方案是分割文件大小(不超过32 MB),并在上传较大文件时进行多个API调用。
希望这可以澄清您的问题。