我正在复制<使用gsutil cp命令从美国物理位置到位于EU位置的10MB大小的桶。我收到了同一文件的多个对象通知消息。这些多对象通知具有相同的大小,md5sum但不同的x-goof-message-number。并非所有文件或任何特定文件都有多个对象通知,但这对任何文件都是随机发生的。
为了消除gsutil可恢复传输作为罪魁祸首的可能性,我在.boto文件中将resumable_threshold设置为15MB。
让我知道可能导致多个对象通知的原因。对于我的应用程序,同一对象的多个对象通知是错误的事件。
这很奇怪,因为对位于美国位置的水桶进行相同的操作时没有看到。
答案 0 :(得分:0)
如Object Change Notification文档中所述:
注意:由于上面的重试机制,有可能 通知不止一次发送。确保你的 应用程序在处理唯一的方面是幂等的 通知。
但是,如果您收到多个通知,X-Goog-Message-Number
标题应该相同。您是否针对具有不同X-Goog-Message-Number
值的同一事件收到多个通知?您确定没有创建多个通知渠道吗?通过查看X-Goog-Channel-Id
标题,您可以判断两条消息是否属于同一通知通道。