你能在这里帮助我吗?
我从云存储批处理文件(json文件)以将数据写入BigQuery。
我有一个使用Cloud Function(处理消息并将数据写入BQ)订阅者创建的主题。
我创建了一个' DataFlow'作业通知主题在我的源存储桶中创建/存储的任何json文件。
上面的流程处理json文件并完美地将行插入到BQ表中。
我想在成功处理文件后从云存储中删除源json文件。关于如何做到这一点的任何输入?
答案 0 :(得分:0)
您可以使用客户端库,然后在管道中的某个位置调用对象删除功能。
首先安装Java Client Library,然后在处理文件后调用delete方法,如sample所示:
BlobId blobId = BlobId.of(bucketName, blobName);
boolean deleted = storage.delete(blobId);
if (deleted) {
// the blob was deleted
} else {
// the blob was not found
}
<强>更新强>
我想到的另一件事是使用Pub/Sub notifications来了解存储桶中发生某些事件的时间。但到目前为止,supported events列表并未包含对象创建:
OBJECT_FINALIZE 在存储桶中成功创建新对象(或新一代现有对象)时发送...
OBJECT_METADATA_UPDATE 当现有对象的元数据发生变化时发送...
OBJECT_DELETE 永久删除对象时发送。这包括被覆盖或作为其一部分被删除的对象 存储桶的生命周期配置......
OBJECT_ARCHIVE 仅在存储桶启用对象版本控制时发送...
重要:以后可能会发布其他事件类型。客户代码 应该安全地忽略无法识别的事件类型,否则 在其通知配置中明确指定哪个事件 他们准备接受的类型。
希望这有帮助。