【问题标题】:Google App Engine Blobstore API on DjangoDjango 上的 Google App Engine Blobstore API
【发布时间】:2020-03-09 02:24:49
【问题描述】:

我有一个用 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's Blobstore API 以启用大文件上传。

【问题讨论】:

    标签: django google-app-engine google-cloud-platform blobstore http-status-code-413


    【解决方案1】:

    来自Google Cloud Official Documentation

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 2015-02-07
      • 2013-12-25
      • 2013-09-23
      • 2011-03-25
      • 2012-07-22
      • 2010-11-03
      • 2011-09-28
      • 1970-01-01
      相关资源
      最近更新 更多