You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API获取SeaweedFS Docker实例的存储空间信息?

SeaweedFS 获取存储统计的API方案

SeaweedFS提供了直接的API接口获取存储使用数据,无需遍历文件,完全满足你的需求:

1. Filer 全局统计接口

Filer节点的/stats端点会返回集群整体的存储统计(前提是Filer已配置跟踪所有Volume Server),请求无需额外认证(除非你给Filer加了权限控制)。

Python示例代码

import requests
import math

# 替换为你的Filer地址和端口
filer_host = "your-filer-ip"
filer_port = 8888

# 请求统计数据
resp = requests.get(f"http://{filer_host}:{filer_port}/stats")
stats = resp.json()

# 解析字节数并转换为GB(向上取整)
total_size = stats.get("TotalVolumeSize", 0)
used_size = stats.get("UsedVolumeSize", 0)
free_size = total_size - used_size

total_gb = math.ceil(total_size / (1024**3))
used_gb = math.ceil(used_size / (1024**3))
free_gb = math.ceil(free_size / (1024**3))

print(f"总存储: {total_gb} GB")
print(f"已用存储: {used_gb} GB")
print(f"空闲存储: {free_gb} GB")

2. Volume Server 单节点统计接口

如果需要单独获取某个Volume Server的磁盘使用情况,可以访问该节点的/status端点,返回的JSON中包含磁盘的总容量、已用、空闲数据。

示例请求与解析

import requests
import math

# 替换为你的Volume Server地址和端口
volume_host = "your-volume-server-ip"
volume_port = 8080

resp = requests.get(f"http://{volume_host}:{volume_port}/status")
status = resp.json()

disk_stats = status.get("Disk", {})
total_size = disk_stats.get("Total", 0)
used_size = disk_stats.get("Used", 0)
free_size = disk_stats.get("Free", 0)

total_gb = math.ceil(total_size / (1024**3))
used_gb = math.ceil(used_size / (1024**3))
free_gb = math.ceil(free_size / (1024**3))

注意事项

  • 集群环境下,若要获取整体存储,优先用Filer的/stats;如果需要分节点统计,遍历所有Volume Server的/status接口后汇总即可。
  • 默认端口:Filer为8888,Volume Server为8080,如果你修改过配置,需要替换为对应端口。
  • 若Filer启用了认证,需要在请求头中携带对应的认证信息(比如JWT Token)。

内容的提问来源于stack exchange,提问作者Son Goku ssj4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:25:13