Google Storage:删除文件夹(如果文件夹为空)

问题描述:

Google存储分区中有一个文件夹。Google Storage:删除文件夹(如果文件夹为空)

我需要删除(使用JSON API)该文件夹(让它表示它xxx/)当且仅当它是空的。

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

但是,无条件删除xxx/对象呢?如果它是空的,则删除将执行我们所需的操作,如果它不是空的,则xxx/将继续像文件夹一样运行,因为存在前缀为xxx/的文件。

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

删除xxx /对象不会删除文件夹内的任何对象。

请注意,该对象是由工具(如Cloud Storage Web控制台)创建的,以支持GCS中实际为平面命名空间内的文件夹错觉(例如,服务没有文件夹,“/ “工具使用字符来模拟存储桶中的文件夹)。

做你想做的事情的唯一方法是获取xxx /前缀下的对象列表,如果该列表非空,则不删除xxx /对象。但是,这样做有一个固有的竞争条件,因为在你做检查后有人可以写一个新的对象。