Django上的Google App Engine Blobstore API

问题描述 投票:0回答:1

我有一个内置于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以启用大文件上传。

django google-app-engine google-cloud-platform blobstore http-status-code-413
1个回答
0
投票

来自Google Cloud Official Documentation

存在一些特定于Blobstore API使用的限制。

  • 应用程序可以通过一个API调用读取的Blobstore数据的最大大小为32兆字节。

    ] >>
  • 单个POST形式可以上传的最大文件数为500。

  • ] >>

    您的代码看起来不错,由于Blobstore API配额和限制,这是预期的错误。我知道的唯一解决方案是分割文件大小(不超过32 MB),并在上传较大文件时进行多个API调用。

希望这可以澄清您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.