gpt4 book ai didi

javascript - 使用 Node.js 的 Google Cloud Storage 更改通知

转载 作者:搜寻专家 更新时间:2023-10-31 23:20:15 26 4
gpt4 key购买 nike

我有 Firebase 存储桶,我想使用 Node.js Google-cloud 通知 API 来监听存储中的变化。

我目前拥有的:

const gcloud = require('google-cloud');

const storage = gcloud.storage({
projectId: 'projectId',
credentials: serviceAccount
});

const storageBucket = storage.bucket('bucketId');

现在,据我了解,我必须创建一个 channel 才能收听存储更改。

所以我有:

const storageBucketNotificationChannel = storage.channel('channelId', 'resourceId');

这是文档不再清晰的阈值,因为我无法弄清楚 channelIdresourceId 代表什么。

我也不明白如何声明监听 channel 变化本身。是否有任何生命周期类型的方法可以这样做?

我可以做类似的事情吗?

storageBucketNotificationChannel.onMessage(message => { ... })

最佳答案

基于现有的documentation of the Google Cloud Node.js Client以及来自this Github issue的反馈,目前 Node 客户端无法创建 channel 或订阅对象更改通知。

其中一个原因是使用客户端的机器不一定是运行应用程序的机器,因此存在安全风险。但是,仍然可以订阅给定存储桶的对象更改通知,并让通知收到 Node.js GAE 应用程序。

使用对象:watchAll JSON API

使用gsutil订阅时,gsutil sends a POST requesthttps://www.googleapis.com/storage/v1/b/bucket/o/watch 其中 bucket 是要监视的桶的名称。这本质上是 JSON API Objects: watchAll 的包装器.一旦所需的应用程序/端点已按照 Notification Authorization 中的描述进行授权,可以向所述 API 发送适当的 POST 请求,并在 address 中提供所需的端点 URL。例如,address 可以是 https://my-node-app.example.com/change

然后,Node/Express 应用程序服务需要监听对路径 /changenotifications resembling this 的 POST 请求。 .然后,应用程序将相应地根据该数据采取行动。请注意,应用程序应按照 Reliable Delivery 中所述响应请求。让 Cloud Storage 在失败时重试或在成功时停止重试。

关于javascript - 使用 Node.js 的 Google Cloud Storage 更改通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com