问题标签 [gcloud-node]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 您可以使用 gcloud-node 更新元数据吗
我正在使用gcloud-node将文件存储在 Google Cloud Storage 上。我想更新元数据,例如时间戳 ala touch
。那可能吗?
node.js - 添加超过 500 个字符的实体属性/设置未索引
我试图通过将索引值设置为 false 来创建一个属性超过 500 个字符的实体。
我将如何使用带有保存功能的 gcloud-node 库来执行此操作?
谢谢
node.js - 在 bucket.createReadStream 中找不到错误
我刚开始在 ExpressJS Web 应用程序中使用 gcloud-node 并遇到了一个看似非常基本的问题,但我无法弄清楚。
我可以上传文件没有问题。我用:
查看我的谷歌开发者控制台,我在我的存储桶中看到了该文件,例如名称:54314eddacd67fc858bf473f/543ba7bb387b56b908f2b1e4.jpg
当我尝试使用该名称下载时,即:
我收到此错误:
uncaughtException: Not Found
Error: Not Found
at Object.handleResp (/Users/ruairiobrien/Dev/testApp/node_modules/gcloud/lib/common/util.js:168:14)
at Bucket.makeReq_ (/Users/ruairiobrien/Dev/testApp/node_modules/gcloud/lib/storage/index.js:580:10)
at Request.Connection.req [as _callback] (/Users/ruairiobrien/Dev/testApp/node_modules/gcloud/lib/common/connection.js:251:16)
at Request.init.self.callback (/Users/ruairiobrien/Dev/testApp/node_modules/gcloud/node_modules/request/request.js:199:22)
at Request.emit (events.js:98:17)
at Request.onResponse (/Users/ruairiobrien/Dev/testApp/node_modules/gcloud/node_modules/request/request.js:1160:14)
at Request.emit (events.js:117:20)
at IncomingMessage.Request.onResponse.strings (/Users/ruairiobrien/Dev/testApp/node_modules/gcloud/node_modules/request/request.js:1111:12)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:929:16
我已经调试过了,我确定存储桶中存在具有正确名称的文件。
我真的很难过,所以任何帮助将不胜感激。
我也尝试将文件写入我的本地文件系统,而不是在响应中并得到相同的错误。
一个有效的临时(或永久)解决方法是:
解决方法工作正常,但不能帮助我弄清楚为什么 createReadStream 失败,因为它表明文件名和存储桶是正确的。
node.js - Node.js node-gcloud 同步调用
我正在使用 node-gcloud https://github.com/GoogleCloudPlatform/gcloud-node与 Google Cloud Storage 进行交互。
我正在开发一个 node.js 服务器(我的第一个 node.js 项目)来为客户端提供一小组 API。基本上,当用户上传文件时,API 调用会返回签名的 url 以显示该文件。
getSignedUrl 函数是异步的https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.8.1/storage?method=getSignedUrl我找不到从另一个函数返回该结果的方法。
我已经开始使用 Bluebird 的承诺,但我无法达到目的。这是我的代码:
我认为我错过了它应该如何工作的基础知识,所以任何提示都会受到赞赏。
编辑:
对于第一条评论,我已经修改了我的解决方案:
我不清楚双重回报应该如何工作,但如果我保留回报桶
我得到的是这个输出:
{ url:{ _bitField:0,_fulfillmentHandler0:未定义,_rejectionHandler0:未定义,_promise0:未定义,_receiver0:未定义,_settledValue:未定义,_boundTo:未定义}}
, 如果删除它并保留
我和以前一样不确定。我错过了什么?
performance - Google Datastore 使用 gcloud-node 速度慢
我正在尝试使用 gcloud-node 调用 Google Datastore,并且对于非常简单的查询,我始终获得大约 400 毫秒的响应时间。Google AppEngine 状态显示该服务目前正在响应大约 10 毫秒,但我从未低于 200 毫秒。
我已经尝试在 Google Compute 实例和本地运行,并且没有任何显着差异(我没有在 Google AppEngine 上运行)。
我做错了什么还是 Datastore 真的这么慢?
这是我用来测试性能的一个简单程序:
我得到以下输出:
我试过用谷歌搜索 Datastore 性能,但除了可追溯到 2011 年的投诉外,我发现的很少。
感谢您的任何指点!
node.js - NodeJS Google Storage 无法使用 gcloud 实用程序创建新存储桶
所以我在使用 Node.js 的 gcloud 插件时遇到了一些问题。
我可以通过他们的 GUI 手动创建一个存储桶,然后使用该容器很好地使用谷歌提供的 gcloud 库在我的节点程序中写入文件。
当我尝试创建一个新存储桶时,问题就来了。
这总是返回:
所以我知道它认为我传递了一个“无效参数”,在这条非常有用的消息中说了 3 次......但我使用的存储桶名称对于我的谷歌存储来说是独一无二的。据我所知,它遵循命名约定。
任何见解都是最受欢迎的。
这是我用于设置链接的字符串:
请注意,我在读取和写入通过 GUI 手动创建的存储桶时没有任何问题。只是无法创建新的存储桶。
我还尝试了在所有云存储中应该是全球唯一名称:
编辑:按照 steven 的建议进行 API 测试会产生相同的响应。我使用 oAuth 对浏览器进行了身份验证......与在节点 api 中完成的身份验证略有不同,但结果是相同的。虽然我可能没有在 API 测试器中正确格式化我的请求,但我得到的是:
要求:
回复:
node.js - NodeJS gcloud - 使用公共读取属性/自定义缓存过期上传到谷歌存储
我正在尝试使用 gcloud 库(NodeJS)上传到谷歌存储。
我需要启用公共读取属性并将缓存过期时间设置为 5 分钟。
我正在使用这个(简化的)代码:
如何设置适当的 ACL/缓存过期?(我发现了这个但不知道该怎么做: https ://googlecloudplatform.github.io/gcloud-node/#/docs/v0.11.0/storage?method=acl )
谢谢您的帮助
node.js - 如何禁用 Docker 容器以重新启动`gcloud preview app run`
gcloud preview app run .
我用命令启动我的 Nodejs 应用程序。
每次我更新项目中的任何文件时,都会gcloud
重新启动 Docker 容器。它总是需要很多时间。
在Google Compute Engine Docs中,我找到了restartPolicy
配置,但尝试将其添加到 myapp.yaml
中,在运行应用程序时会引发错误:
错误:配置无效:AppInfoExternal 类型对象的意外属性“restartPolicy”。
这可能意味着它不应该与谷歌云上的自定义虚拟机一起使用。
我想知道是否有办法告诉gcloud
禁用自动 Docker 容器重启,但在需要时以某种方式手动重启?
publish-subscribe - Google Cloud 上使用 Pub/Sub 的主/从模式
我们想在 Google Cloud 上构建一个主从模式。我们计划为此使用 Pub/Sub(类似于JMS模式)让每个工作人员从队列中获取任务并在完成后确认。
但是,订阅者似乎无法在开始之前收到发送的消息。而且我们不确定如何确保每条消息都由单个“从属”处理。
有没有办法做到这一点?或者谷歌云上的另一种机制?