[英]How to change file's metadata in Google Cloud Storage with Node.js
[英]Google Cloud Storage change notifications with Node.js
我有Firebase存儲桶,我想使用Node.js Google-cloud notification API來收聽存儲中的變化。
到目前為止我所擁有的:
const gcloud = require('google-cloud');
const storage = gcloud.storage({
projectId: 'projectId',
credentials: serviceAccount
});
const storageBucket = storage.bucket('bucketId');
根據我的理解,我必須創建一個頻道才能收聽存儲變化。
所以我有:
const storageBucketNotificationChannel = storage.channel('channelId', 'resourceId');
這是文檔停止清晰的閾值,因為我無法弄清楚resourceId代表什么channelId 。
我也不了解如何宣布收聽頻道更改本身。 有沒有生命周期類型的方法呢?
我能做點什么嗎?
storageBucketNotificationChannel.onMessage(message => { ... })
基於Google Cloud Node.js客戶端的現有文檔以及來自此Github問題的反饋,節點客戶端目前無法創建頻道或訂閱對象更改通知。
其中一個原因是使用客戶端的機器可能不一定是應用程序運行的機器,因此存在安全風險。 但是,仍然可以訂閱給定存儲桶的對象更改通知,並通知Node.js GAE應用程序。
使用gsutil
進行訂閱時,gsutil會向 https://www.googleapis.com/storage/v1/b/bucket/o/watch
發送POST請求 ,其中bucket
是要監視的存儲桶的名稱。 這本質上是JSON API對象的包裝器:watchAll 。 一旦按照通知授權中的描述授權了所需的應用程序/端點,就可以向所述API發送適當的POST請求,並在address
提供所需的端點URL。 例如, address
可以是https://my-node-app.example.com/change
。
然后,Node / Express應用程序服務需要監聽POST請求以路徑/change
類似於此的通知 。 然后,應用程序將相應地對該數據進行操作。 請注意,應用程序應響應可靠傳送雲存儲中所述的請求,以便在失敗時重試,或者如果成功則停止重試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.