0

我有一个用 Django 构建的应用程序,目前部署在 Google App Engine 上。一切正常,除了当我想上传大于 32MB 的文件时。我收到一个错误,上面写着413。这是一个错误。

我一直在做一些研究,我开始意识到我必须使用 Google App Engine 的 Blobstore API。我不知道如何在我的 Django App 上实现它。

目前我的代码看起来像这样:

模型:

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 的 Blobstore API以启用大文件上传。

4

1 回答 1

0

来自谷歌云官方文档

存在专门适用于 Blobstore API 使用的限制。

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

  • 单个表单 POST 最多可以上传 500 个文件。

您的代码看起来不错,这是由于 Blobstore API 配额和限制而导致的预期错误。一种方法是拆分文件大小(不应超过 32 MB),并在上传较大文件时进行多次 API 调用。另一种解决方案是直接上传到Google Cloud Storage

希望这能澄清你的问题。

于 2019-11-13T10:22:05.547 回答