Google App Engine是一种云计算技术,用于在Google管理的数据中心托管Web应用程序。 Google App Engine是一种平台即服务(PaaS)产品,在其标准环境中提供Java,Python,Go,Node.js和PHP。其灵活的环境支持其他一些语言的运行时以及基于docker的自定义运行时。
为什么GAE php8.2标准环境回显长字符串时服务器会挂起?
我做错了什么还是服务器有问题?这会挂起浏览器(MACOS 下的 Safari 和 Firefox): 我做错了什么还是服务器有问题?这会挂起浏览器(MACOS 下的 Safari 和 Firefox): <!DOCTYPE html> <HTML> <BODY> <?php $qq = str_repeat("X",409998); echo $qq; ?> </BODY> </HTML> 运行在 Google 的 AppEngine、标准环境、PHP 8.2 上。如果我缩短字符串,效果很好。虽然问题是一致的,但如果我调整字符串的长度,我可以让它处理一些更长的字符串。 在解决问题之前,有一个解决方法:使用 Ajax 和 JSON 一次下载一个块文件,然后在 HTML 文件中重建该文件。将块大小设置为不会挂起浏览器的大小。 源.php <?php require '../vendor/autoload.php'; use Google\Cloud\Storage\StorageClient; $storage = new StorageClient(); $storage->registerStreamWrapper(); header("Access-Control-Allow-Origin: *"); $chunk_size = 300000; //multiple of 3 because base64 works with groups of 3 bytes $chunk = $_REQUEST['chunk']; if($chunk == 0) { // first request for file $required_chunks = ceil(filesize("gs://$_REQUEST[key]") / $chunk_size); if($required_chunks == 1) { // send complete file $data="data:$_REQUEST[content_type];base64,".base64_encode(file_get_contents("gs://$_REQUEST[key]")); echo json_encode(array($_REQUEST['target'],$data,0)); } else { // file must be sent in chunks $data="data:$_REQUEST[content_type];base64,".base64_encode(file_get_contents("gs://$_REQUEST[key]",FALSE,NULL,0,$chunk_size)); echo json_encode(array($_REQUEST['target'],$data,1,$required_chunks,$_REQUEST['key'])); } } else { // continue sending chunks $data=base64_encode(file_get_contents("gs://$_REQUEST[key]",FALSE,NULL,$chunk * $chunk_size,$chunk_size)); echo json_encode(array($_REQUEST['target'],$data,++$chunk,$_REQUEST['required_chunks'],$_REQUEST['key'])); } } ?> 接收器.php <!DOCTYPE html> <HEAD> <SCRIPT> data_cache=[] function getImage(target,type,k) { var xmlhttp xmlhttp=new XMLHttpRequest() xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4 && xmlhttp.status==200) { var d=JSON.parse(xmlhttp.responseText) if(d[2] == 0) document.getElementById(d[0]).src=d[1] // single chunk else { if(d[2]!=d[3]) { // not the last chunk if(d[2] == 1) data_cache[d[0]] = d[1] // start cache else { data_cache[d[0]] = data_cache[d[0]] + d[1] //append to cache } // send for next chunk xmlhttp.open("GET","source.php?target="+d[0]+"&key="+d[4]+"&chunk="+d[2]+"&required_chunks="+d[3]) xmlhttp.send() } else { dc = data_cache[d[0]] + d[1] document.getElementById(d[0]).src = dc } } } } xmlhttp.open("GET","source.php?target="+target+"&content_type="+type+"&key="+k+"&chunk=0") xmlhttp.send() } </SCRIPT> </HEAD> <BODY> <DIV><IMG id='i999'><SCRIPT>getImage('i999','image/jpeg',{bucket}/{file}.jpg')</SCRIPT></DIV> </BODY> </HTML>
我按照以下步骤操作: distDir:next.config.js 中的“构建” 修改package.json { “名称”:“商店”, “版本”:“1.0.8”, “描述”:“...
我正在尝试从 firebase CLI 部署我的项目,但我的功能存在问题。这很奇怪,因为四个星期前我没有遇到任何问题。我没有更改任何 Firebase Cloud
将域从 App Engine 服务优雅地切换到 Cloud Run
我有一个在 App Engine 中运行的服务,该服务已映射到它的自定义域。 我们正在将此服务从 App Engine 迁移到 Cloud Run。 因此,我们想切换域映射...
我有一个谷歌应用程序引擎部署,有2个php文件,index.php和generate.php,当我尝试访问generate.php时,应用程序引擎总是重定向到index.php,无论我做什么,无论w...
(基本扩展)如果达到空闲超时,App Engine 是否会关闭仍忙于处理请求的应用程序?
Google 是这样描述基本缩放的: 我真的没有任何其他选择,因为我使用的是 B1 实例,所以不允许自动缩放。 但这提出了一个问题,如果我有一个终点……
使用 ruby 3.2 部署的 GCP App Engine Rails 应用程序向 foreman start 添加参数,然后失败
我正在使用 google cloud build 来部署我的 Rails 应用程序。最近我将 ruby 版本升级到了 3.2。我使用 foreman 作为 app.yaml 中的入口点(不带参数)并添加了
没有当前上下文。 NDB 调用必须在 google.cloud.ndb.Client.context 建立的上下文中进行
我有一个适用于 python2.7 的 appengine 应用程序,我想迁移到 python3.9。我首先在我的 appengine 应用程序中调用 google ndb cloud。我使用 python3.9 和 django 作为网络
安装 Google Cloud Platform for Eclipse 时出错:缺少 javax.annotation 依赖项
我在尝试安装适用于 Eclipse 的 Google Cloud Platform 插件时遇到问题。安装过程失败并显示以下错误消息: 无法完成安装,因为...
我正在将 python/django 应用程序的 3 个不同实例部署为项目中的 3 个不同服务。 app-devl 作为共享开发环境 app-test 作为测试环境 默认为
使用身份感知代理,是否可以使用不同的主机名向同一 GCP 项目中的另一个 GAE“服务”发出跨源请求?
设置: 服务 A(前端):GAE 服务静态站点,从 A 发出的所有调用都发生在客户端。 服务 B (api):托管 REST API 的 GAE 实例。 如果没有身份识别代理,我...
使用 Maven 将动态 Web 项目转换为 Google Web 应用程序项目
我有一个动态 Web 项目,它也是一个 Maven 项目,我想将其上传到云服务。我的老师向我推荐了 Google App Engine,但我发现它很难转换
添加登录:需要app.yaml仍然允许每个拥有谷歌帐户的人访问
我们将我们的 (php) 网站迁移到 GAE 标准并使用 Laravel 进行“重建”。我们的网站包含一个名为 /admin 的文件夹,我们不希望公众可以使用该文件夹。所以我把这个放进去了...
Google Secret Manager 中存储的服务帐户 json 出现问题(仅在部署时)
我有一个问题似乎无法解决。我正在运行一个 django 项目,通过 GCP App Engine 进行部署。我已从我的设置文件中取出所有敏感密钥/令牌数据并放置...
Google App Engine 502(网关错误),但使用 PHP 8.2 登录时为 200(正常)
我正在将 GCP 应用引擎从旧的 PHP5.5 迁移到 PHP8.2。 应用程序部署成功。当向 GAE 发送请求时,我总是收到 HTTP/1.1 502 Bad Gateway 错误,但根据日志它...
在 Google App Engine Standard 上运行 php 网站不会路由到子文件夹和文件
我正在尝试将我们的网站从Linux虚拟机(也在谷歌上)迁移到谷歌应用程序引擎标准环境。 当我部署应用程序并测试它时,主页(index.php)工作正常,但是当我尝试...
GAE 无法查找 mongodb atlas 实例的 SRV 记录
我有一个在 Atlas 上运行的 mongodb 实例,以及一个在 GAE 上运行的 Spring Boot 应用程序,试图访问该数据库。我在本地运行它没有问题,但在 GAE 上运行时我看到这个 e...
我已将 phpmyadmin 部署到谷歌应用程序引擎服务。首先我遇到了登录问题: 设置会话 cookie 失败。也许您正在使用 HTTP 而不是 HTTPS 来访问 phpMyAdmin。 我已经改变了这个
从 Google Java API 数据存储迁移到 Mysql
我有一个完整的应用程序在 GAE 及其数据存储上运行...现在我需要将应用程序及其数据存储迁移到 mysql 数据库。 实现这一目标的最佳方法是什么,是否有批量下载...