Articles of 谷歌计算引擎

Node.jsstream直接上传到Google云端存储

我有一个运行在Google Compute VM实例上的Node.js应用程序,它直接从POST请求(不通过浏览器)接收file upload,并将传入的数据stream式传输到Google Cloud Storage(GCS)。 我正在使用Restify b / c我不需要Express的额外function,因为它可以很容易地stream入传入的数据。 我为这个文件创build一个随机的文件名,把传入的req转移到一个整洁的小节点封装器(可以在这里find: https : //github.com/bsphere/node-gcs ),它向GCS发出一个PUT请求。 使用PUT的GCS文档可以在这里find: https : //developers.google.com/storage/docs/reference-methods#putobject …它说如果使用chunked transfer encoding Content-Length是不必要的。 好消息:该文件正在相应的GCS存储“桶”内创build! 坏消息: 我还没有想出如何从Restify获取传入文件的扩展名(注意手动设置'.jpg' 和 content-type )。 该文件正在经历轻微的腐败(几乎可以肯定地做我做错了PUT请求)。 如果我从Google下载POST文件,OSX告诉我它的损坏…但是,如果我使用PhotoShop,它打开,看起来很好。 更新/解决scheme 正如vkurchatkin所指出的vkurchatkin ,我需要parsingrequest对象,而不是仅仅把所有东西都传送给GCS。 在尝试了更轻的busboy模块之后,我决定使用multiparty更容易一些。 为了dynamic设置Content-Type ,我简单地使用Mimer ( https://github.com/heldr/mimer ),引用传入文件的文件扩展名。 重要的是要注意,由于我们正在pipe道part对象, part头必须被清除。 否则,意想不到的信息,特别是content-type将被传递,并且可能会与我们试图明确设置的content-type冲突。 以下是适用的修改后的代码: var restify = require('restify'), server = restify.createServer(), GAPI = require('node-gcs').gapitoken, GCS […]

rethinkdb谷歌计算引擎断开连接

您好我在谷歌计算引擎实例上运行rethinkdb设置。 我主要使用更改提要(套接字连接)到数据库,并从我的本地计算机或应用程序连接到这些。 为此我使用npm包rethinkdb-websocket-server和client。 虽然我遇到连接断开的情况,但工作正常。 它工作了大约10分钟,然后连接下降,然后重新开始.. 除了一些僵尸networking试图进入google-compute-engine实例,我没有注意到任何特殊的东西,我在串口控制台中看到了这些。 那可能会导致断开连接,在这种情况下,我该如何防止这种情况? 它工作正常,如果我在我的本地主机上运行安装程序,那么根本没有断开连接。 rethinkdb日志没有提及任何问题。 任何人有什么可能导致这样的事情的想法,我甚至不知道从哪里开始寻找,所以任何build议表示赞赏。

Google云端函数包含私人图书馆

我正在寻找在节点编写自定义库,我想包括我的云function。 由于这是共享代码,我希望能够在所有云function中使用它。 编写共享代码库的最佳方法是什么,并且可以通过多个云function访问这些代码。 例如,假设我有两个云端函数,functionA和functionB。 我有一个名为“common.js”的节点JavaScript文件,它具有一个我希望公开给functionA和functionB的javascript函数。 exports.common = { log: function(message) { console.log('COMMON: ' + message); } }; 所以在函数中,我想要求这个文件,并调用“common.log('test');”。 我把这看作是最基本的问题,但我实在无法在任何地方find答案。 非常感激任何的帮助。 这实际上是阻止我使用GCF作为现在和将来开发代码的唯一方法!

如何将nodejs应用程序部署到谷歌云?

我试图部署一个nodejs应用程序到谷歌云,我已经发布了几个SO问题,我已经得到的错误,以及如何解决它们。 让我说明我的努力… 问题1)我试着按照教程 ,世界应用程序的部署。 当我input命令进行部署时, $ gcloud preview app deploy app.yaml –set-default 它给了我一个错误,说pipe理虚拟机不适用于您的应用程序的区域。 我联系了谷歌的技术支持代表谷歌,他说他的名字叫凌,他说他“不知道在印度不支持pipe理的虚拟主机”,他希望我指出我在哪里find这些信息。 所以我给他发了这个 ,注意其中的一个答案。 好….. 问题2)所以,我被困住了,不知道该怎么做。 search了“如何在google云上部署nodejs应用程序”,并发现了一个video ,其中一位谷歌开发人员告诉我,“在云中运行你的应用程序有两种主要方式,即基础设施即服务和平台即服务”。 在应用程序引擎上运行它是一个平台即服务,这是不在名单上,所以我去了我唯一的剩余选项。 有一个教程, 书架应用程序教程,也由谷歌,最后一部分描述如何在计算引擎上运行您的应用程序。 我试图通过教程,但是当我input命令 git push cloud 7-gce:master 推我的代码到存储库,它是要求我的用户名和密码,它从来没有提到,在教程中,我不知道该input什么。 我发现这个问题,但我不确定它适用于我的情况。 接下来我介绍了Zachary Newman提出的一些教程,我不能跟随他们使用ubuntu 的教程 ,因为当他们告诉你hello.js文件时,这真的很奇怪,因为我不得不ssh进入ubuntu镜像vm我创build,一切都非常慢,我不熟悉Linux上的命令,所以我不得不查找如何在创buildhello.js文件后“保存并退出”。 我得到的“networking服务器”运行,这是反向代理nginx服务器,但由于我不知道什么是APP_PRIVATE_IP_ADDRESS,当我访问该页面时,我可以看到nginx页面,但不是“hello world”消息应该显示。 请参阅先决条件标题以查看教程试图教给我的内容。 好…. 问题3)在谷歌开发者控制台,一旦你login,有一个导航部分在左边,有一个“云启动”的链接。 在那里,我find了一个链接来创build一个安装了nodejs的虚拟机,它是由Bitnami创build的。 我点击它,我的虚拟机正在运行,我去了提供的外部IP地址,并看到由Bitnami的恭喜(呃…)页面。 我真的不知道该怎么做,所以我又贴出了一个SO问题。 一位bitnami开发人员告诉我,我需要将文件复制到远程存储库,创buildconfiguration文件,之后必须在Apache的configuration中包含该configuration,以便为应用程序提供服务。 怎么样?!?! 他刚刚发布了一个链接,以及一个bitnami wiki页面 。 我用filezilla连接到我的虚拟机,我试图将我的应用程序file upload到虚拟机。 我能够上传除节点模块以外的所有内容(上传时间过长,出于某种原因,在10分钟左右的上传过程中,ftp客户端仍然与服务器断开连接)。 所以我想我只是ssh进入实例,并尝试npm安装我的依赖关系。 但它给了我更多的错误… 问题4)我不知道为什么这个职位被搁置,但我发现这一点 。 我现在找不到确切的页面,但是我在google文档中的某个地方读过,我们不能以root […]