ElasticSearch 通过获取Status获取备份文件占用空间的大小
ElasticSearch API
向 127.0.0.1:9200/_snapshot/备份仓库名/快照名/_status
发送请求即可获取快照状态,可在stats.total_size_in_bytes中获取到备份的文件大小。注意的是这里获取的单位是byte,如果想直接获取已经转换好的单位,可以加上human参数,如下:
127.0.0.1:9200/_snapshot/备份仓库名/快照名/_status?human
此时返回的stats里会出现total_size字段,该字段会根据具体大小自动转换成MB、TB等单位。
关于这部分带human参数的返回字段描述,可以参照
https://github.com/elastic/elasticsearch/issues/18543#event-1647308307
JAVA API
如果要使用JAVA获取文件大小,首先要声明Client,我使用的是TransportClient,在配置文件中配置如下:
spring:
data:
#ElasticSearch地址
elasticsearch:
cluster-name: elasticsearch
cluster-nodes: 127.0.0.1:9300
然后@AutoWired注入TransportClient transportClient
在需要使用的地方加入如下代码:
String[] snapshotsName = new String[]{
"快照1"