首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >应用程序引擎从云存储下载的大小限制

应用程序引擎从云存储下载的大小限制
EN

Stack Overflow用户
提问于 2018-12-19 12:46:37
回答 1查看 1.3K关注 0票数 1

tldr:是否有文件大小限制将文件从云存储发送到我的用户的web浏览器作为下载?我是使用了错误,还是需要增加应用程序引擎YAML文件设置的资源?

这只是下载的一个问题。上传工作到任何文件大小都很好,可以使用分块。

症状

我用AppEnginePython3.7标准环境创建了一个文件传输应用程序。用户可以上传任何大小的文件,这是很好的工作。但是,用户在从Cloud下载结果文件时遇到了似乎是一个大小限制。

我在整个上传/下载过程中成功发送和接收的最大文件是29兆字节。然后,我给自己发送了一个55 me的文件,但当我尝试将其作为下载时,Flask给出了以下错误:

Error: Server Error The server encountered an error and could not complete your request. Please try again in 30 seconds.

应用结构

为了创建我的文件传输应用程序,我使用了internalexternal两个服务,每个服务都有自己的Flask路由文件、自己的网页/域和自己的YAML文件。

为了测试应用程序,我访问了我创建的internal网页。我使用它将一个文件以块的形式上传到我的应用程序中,它成功地构成了云存储中的块。然后,我以管理员身份登录到Google平台控制台,当我查看Console时,它将显示我上传的55 me文件。它将允许我直接通过云平台控制台下载它,而且文件很好。

(直到这个过程的那个阶段,这甚至可以用于1.5G的文件。)

然后,我以非管理员用户的身份访问我的external网页。我使用该表单尝试接收与下载相同的文件。我知道上面的错误。但是,对于我的29 my测试文件,这整个过程没有遇到错误,或者更小。

此服务的Stacktrace日志显示:

logMessage: "The process handling this request unexpectedly died. This is likely to cause a new process to be used for the next request to your application. (Error code 203)"

可能的解决办法

我将以下行添加到我的external服务YAML文件中:

resources: memory_gb: 100 disk_size_gb: 100

错误保持不变。显然这不是系统资源的限制?

也许我把Python误用在云存储上了。我从storage进口google.cloud。下面是我的应用程序通过向用户发送所请求的文件来响应用户的POST请求的地方:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.route('/download', methods=['POST'])
def provide_file():
    return external_download()

这一部分在external_download

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(current_app.cloud_storage_bucket)
    bucket_filename = request.form['filename']
    blob = bucket.blob(bucket_filename)

    return send_file(io.BytesIO(blob.download_as_string()),
                     mimetype="application/octet-stream",
                     as_attachment=True,
                     attachment_filename=filename)

我是否需要为下载实现分块,而不仅仅是上传?

EN

回答 1

Stack Overflow用户

发布于 2018-12-21 02:36:21

我不建议使用方法来管理大型文件传输,Flask文件处理方法是开发人员或API使用的,主要用于交换系统消息,比如日志、cookie和其他轻量级对象。

此外,download_as_string()方法可能确实隐藏了缓冲区限制,我确实复制了您的场景,并得到了与大于30‘t的文件相同的错误消息,但是我找不到更多关于此类约束的信息。它可能是有意的,是由方法的目的引起的(下载内容作为字符串,不适合大型对象)。

使用Cloud和Python有效地处理文件传输的经过验证的方法:

  • 直接使用云存储API的方法,不使用下载上传对象。正如@FridayPush所提到的,它将卸载您的应用程序,您可以使用签名URL控制访问。
  • 使用Blobstore存储API,一种简单、简单、简单的解决方案来处理文件传输,完全集成到GCS桶中,并适合于这种情况。
  • 使用内置Python请求模块,需要创建自己的处理程序来与GCS通信。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53858923

复制
相关文章
使用Termux在Android上运行SSH服务器
借助出色的Termux终端仿真器应用程序,您可以在Android上运行SSH服务器。
用户5005176
2021/08/10
4.6K0
linux服务器ssh文件传输—scp使用指南
这个问题可烦恼很久了,之前用ftp传输文件相当麻烦,但是这次使用打ssh,则简单有效。
十四君
2019/11/27
2.2K0
在Windows上使用PuTTY进行SSH连接
PuTTY是一个用于Windows和UNIX系统的免费开源SSH客户端。它可以轻松连接到运行SSH守护程序的任何服务器,因此您可以像登录到远程系统上的控制台会话一样工作。
文艺复兴
2018/09/10
21.6K0
在Windows上使用PuTTY进行SSH连接
在Linux服务器上安装Web SSH--SSHwifty的部署和使用
SSH,其全称是Secure Shell(安全外壳协议)是一种加密的网络传输协议。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令,即:远程Terminal登录。
Mintimate
2021/06/01
11K0
在Linux服务器上安装Web SSH--SSHwifty的部署和使用
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR?
程序熵
2023/09/25
2310
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
在Mac上使用ssh-key免密码登录服务器
从很早之前开始,在搭建测试服务器的时候,就不停的谷歌怎么免密登录服务器,每次配置好免密登录后,到搭建新的服务器时,又忘记了具体的命令,所以决定把这个方法记下来,方便之后日后查找。
Originalee
2018/08/30
5K0
Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解
曾几何时我也是个能糊弄就糊弄的小白,不知道是年级大了还是其他什么别的原因所致,遇到问题不在敷衍,总想着解决问题,就好比这次,因为旧主机磁盘已满想着续费不划算就趁着阿里搞活动新购一台,但是之前的数据多而杂且项目带有SVN库,如果是简简单单迁移还好说,毕竟备份恢复就完成了,这次我想着能不能把SVN也备份到新服务器直接使用,最终在我测试了36个小时之后得到的答案是【可以】,不然也不会有这篇文章了吧,哈哈~可能是因为比较笨,用时较长,哎反正不管怎么说这次SVN的备份和迁移算是尘埃落地,以下是我此次备份和迁移的过程。
李洋博客
2023/11/17
1.7K0
Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解
在 Linux 上保护 SSH 服务器连接的 8 种方法
本周赠书:一文理解分布式开发中的服务治理 来源:https://www.linuxmi.com/secure-ssh-connections-linux.html SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。 具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。尤其是如果您使用的是公共 IP 地址,则破解 root 密码要容易得多。因此,有必要了解 SSH 安全性。 这是
程序猿DD
2022/07/27
1.2K0
在 Linux 上保护 SSH 服务器连接的 8 种方法
工位上的Python——简单SSH服务器
最近在看python网络方面的知识,发现使用socket编写一些小的服务器真是太方便了,简单几行代码就能实现一个服务器,真是高大上呀,废话少说,直接上代码:
py3study
2020/01/09
1.3K0
在新服务器上搭建wordpress网站
0.首先在购置好服务器后,选一个常用的系统,一般是ubuntu 14.04 不建议用一键安装包,还是自己走一边流程熟悉点。
十四君
2019/11/26
4.1K0
在本地服务器上使用Python脚本处理HTML表单
要在本地服务器上使用 Python 处理 HTML 表单,可以使用 Flask 框架,这是一个轻量级的 web 框架,特别适合快速构建和处理 HTTP 请求。
华科云商小徐
2024/09/09
1130
使用SSH密钥在Git服务器上免密码提交代码
在使用Git进行版本控制时,每次提交代码时都要求输入用户名和密码,这对于频繁提交的开发者来说会显得十分繁琐。通过配置SSH密钥,可以实现免密码提交代码,既提升了工作效率,也增强了安全性。本文将介绍如何在Git服务器上使用SSH密钥进行身份验证,替代每次输入账户密码的方式。
alanzeng
2025/01/14
1000
MySql在服务器上使用问题的总结
服务器是Windows Server 2012,我自己安装了一个MySql数据库,然后一个Web程序和客户端程序都想访问数据库,但是遇到一堆问题。主要是我仍然坚持使用.net 2.0,挂接MySql.Data 6.7.4版本。解决后记录一下
用户1075292
2023/05/03
1.1K0
MySql在服务器上使用问题的总结
Navicat 使用 SSH 方式连接腾讯云服务器上的 MySQL
在配置完服务器上的 MySQL 后,在准备使用 Navicat 直接连接 MySQL。这时发现无法使用 Navicat 直接通过公网 IP 连接 MySQL。
求和小熊猫
2020/11/25
13.9K0
Navicat 使用 SSH 方式连接腾讯云服务器上的 MySQL
在Linux使用Bash脚本命令
tee命令的默认行为是覆盖指定的文件,与>运算符相同。 要将输出附加到文件,请使用-a(--append)选项调用命令:
用户5005176
2021/08/10
2.1K0
在Linux系统中创建SSH服务器别名
如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地址等。此外,它避免了在 SSH 到 Linux 服务器时重复输入相同的用户名、主机名、IP 地址、端口号。
星哥玩云
2022/07/27
4.1K0
在Linux系统中创建SSH服务器别名
新加坡服务器上如何实现自动脚本运行
在新加坡服务器上运行脚本涉及几个关键步骤,包括连接到服务器、上传脚本、配置环境以及实际执行脚本。以下是详细的步骤指南,适用于Linux服务器:
jtti
2024/05/21
1280
4.2 服务器上的 Git - 在服务器上搭建 Git
这里我们将要演示在 Linux 服务器上进行一次基本且简化的安装所需的命令与步骤,当然在 Mac 或 Windows 服务器上同样可以运行这些服务。 事实上,在你的计算机基础架构中建立一个生产环境服务器,将不可避免的使用到不同的安全措施与操作系统工具。但是,希望你能从本节中获得一些必要的知识。
shaonbean
2019/05/26
4K0
在JBOSS服务器上使用Myfaces的JSF实现
JBOSS AS服务器默认使用的JSF实现是SUN的RI,要把他替换成Myfaces需要:
EltonZheng
2021/01/22
8510
服务器小白的我,是如何将 node+mongodb 项目部署在服务器上并进行性能优化的
本文讲解的是:做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 的服务器上,并进行性能优化,达到页面 1 秒内看到 loading ,3 秒内看到首屏内容的。
夜尽天明
2019/11/13
1.7K0
服务器小白的我,是如何将 node+mongodb 项目部署在服务器上并进行性能优化的

相似问题

检查字符串是否跟在python regex中的特定字符串列表之后

16

Python get字符串紧跟在参数开关之后

30

如何让列跟在特定列之后?

110

Bash脚本-紧跟在特定短语之后的条目

12

使用Xpath选择紧跟在特定节点之后的特定节点

210
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文