Google云端存储 - 删除已处理的文件

时间:2018-04-17 22:09:39

标签: google-cloud-platform google-cloud-storage google-cloud-pubsub

你能在这里帮助我吗?

我从云存储批处理文件(json文件)以将数据写入BigQuery。

我有一个使用Cloud Function(处理消息并将数据写入BQ)订阅者创建的主题。

我创建了一个' DataFlow'作业通知主题在我的源存储桶中创建/存储的任何json文件。

上面的流程处理json文件并完美地将行插入到BQ表中。

我想在成功处理文件后从云存储中删除源json文件。关于如何做到这一点的任何输入?

1 个答案:

答案 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 仅在存储桶启用对象版本控制时发送...

     

重要:以后可能会发布其他事件类型。客户代码   应该安全地忽略无法识别的事件类型,否则   在其通知配置中明确指定哪个事件   他们准备接受的类型。

希望这有帮助。