我有一个运行在GAE(Google App Engine)标准环境中的Django应用程序。我正在通过我的应用程序将视频上传到谷歌云桶(利用前端的dropzone)。我的视频大小很大,所以我将文件以块的形式发送到GAE,然后重新创建并上传到GCS。它工作正常。
我的问题是上传大块的请求需要很长时间(上传1MB的大块15s,我删除了大块的处理,仍然需要15s)
@login_required(login_url="/login/")
@require_http_methods(["POST"])
def upload_chunks(request):
try:
file = request.FILES['file']
# upload_utils.upload_image_file(file); //Commented it out
return JsonResponse({"status": True})
except Exception as e:
return HttpResponseServerError(str(e))
每个Chunk Upload需要15秒,所有时间都花在TTFB上
此外,当我将块大小增加到8 MB时,请求会被取消,因为它需要超过30秒。
请帮忙!!
所以PHP文档提供CloudStorageTools::createUploadUrl()
:
用户将文件直接上传到Google云端存储比从App Engine应用程序写入Google云端存储更快,更具成本效益,因为这会耗费实例时间并产生成本。而且,在对应用程序的请求中不会发生文件写入。因此,它免除了否则将适用的60秒限制,并允许上传非常大的文件。
但是python云存储文档似乎没有互惠的部分
但是,旧的blobstore文档具有类似名称create_upload_url()
,您可以在其中指定gs_bucket_name
:
所以也许会这样做
有关blobstore文档的更多信息:
将大文件上传到Google Cloud的最佳方式是do it directly to the Google Cloud Storage。可以使用两种不同的方法完成此任务: