Google存储空间:如果文件夹为空,则删除该文件夹

时间:2017-09-28 18:04:18

标签: directory google-cloud-storage delete-file

Google Storage存储桶中有一个文件夹。

当且仅当它为空时,我需要删除(使用JSON API)文件夹(让我们表示xxx/)。

最明显的方法是检查它是否为空,如果为空则删除。这需要额外的请求,也可能受到竞争条件的限制。

但是,如何无条件地删除xxx/对象呢?如果它是空的,则删除将执行我们需要的操作,如果它是非空的,xxx/将继续表现得像文件夹,因为存在前缀为xxx/的文件。

这种方式是否有任何问题(即无条件删除xxx/对象是否有或没有子对象?)

1 个答案:

答案 0 :(得分:2)

删除xxx / object不会删除任何对象" inside"文件夹。

请注意,该对象是由工具(如云存储Web控制台)创建的,以支持文件夹内部实际上是GCS中的平面命名空间的错觉(即,对于没有文件夹的服务,以及工具使用" /"字符来模仿存储桶中的文件夹。)

执行所需操作的唯一方法是获取xxx /前缀下的对象列表,如果该列表非空,则不删除xxx /对象。但是,这样做具有固有的竞争条件,因为有人可以在您进行检查后编写新对象。