云存储:从存储桶中删除文件夹下的所有文件gs:// <bucket> / path / to / directory / 2017- {01..07} *

时间:2017-10-12 06:59:02

标签: google-cloud-storage

我在gs:/// path / to / directory / 2017- {01..07} *下有8亿个文件要删除,递归使用这个多线程删除

$ gsutil -m rm -r gs://<bucket>/path/to/directory/2017-{01..07}*

在bash下运行它会扩展为gsutil -m rm -r gs://<bucket>/path/to/directory/2017-01* gs://<bucket>/path/to/directory/2017-02* gs://<bucket>/path/to/directory/2017-03* ... gs://<bucket>/path/to/directory/2017-07*

但它显示删除速度为550 / s;所以,删除所有8亿个文件需要16天,太慢了,想知道有更快的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以跨多台计算机分发处理。例如,有脚本如此

  • machine1执行 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-envers</artifactId> <version>5.2.7.Final</version> <exclusions> <exclusion> <groupId>antlr</groupId> <artifactId>antlr</artifactId> </exclusion> <exclusion> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </exclusion> <exclusion> <groupId>org.jboss</groupId> <artifactId>jandex</artifactId> </exclusion> <exclusion> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jta_1.1_spec</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml</groupId> <artifactId>classmate</artifactId> </exclusion> <exclusion> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </exclusion> <exclusion> <groupId>org.hibernate.common</groupId> <artifactId> hibernate-commons-annotations </artifactId> </exclusion> </exclusions> </dependency>
  • machine2执行gsutil -m rm -r gs://<bucket>/path/to/directory/2017-01*

这会给你~12倍的加速。 如果您将数据分割为更多方式,则可以使其更快。