Buckets:

redmingwei's picture
download
raw
1.59 kB
#!/usr/bin/env python3
"""bucket_audit — 盘点 /domains 的规模与构成,判断能否作为数据集仓库发布。"""
from collections import defaultdict
from pathlib import Path
ROOT = Path("/domains")
top_stats = defaultdict(lambda: [0, 0]) # name -> [files, bytes]
ext_stats = defaultdict(lambda: [0, 0])
pdfs = []
big = []
total_files = 0
total_bytes = 0
for p in ROOT.rglob("*"):
if not p.is_file():
continue
try:
sz = p.stat().st_size
except OSError:
continue
rel = p.relative_to(ROOT)
top = rel.parts[0] + ("/" if len(rel.parts) > 1 else "")
top_stats[top][0] += 1
top_stats[top][1] += sz
ext = p.suffix.lower() or "(none)"
ext_stats[ext][0] += 1
ext_stats[ext][1] += sz
total_files += 1
total_bytes += sz
if ext == ".pdf":
pdfs.append(str(rel))
if sz > 200 * 1024 * 1024:
big.append((str(rel), sz))
print(f"TOTAL files={total_files} bytes={total_bytes} ({total_bytes/2**30:.2f} GiB)")
print("\n--- 顶层目录 / 文件(按字节降序)---")
for k, (n, b) in sorted(top_stats.items(), key=lambda kv: -kv[1][1]):
print(f"{b/2**20:10.1f} MiB {n:7d} {k}")
print("\n--- 扩展名 ---")
for k, (n, b) in sorted(ext_stats.items(), key=lambda kv: -kv[1][1])[:15]:
print(f"{b/2**20:10.1f} MiB {n:7d} {k}")
print(f"\n--- PDF 文件(应只有论文类,不应进公开仓库): {len(pdfs)} ---")
for x in pdfs[:20]:
print(" " + x)
print(f"\n--- >200 MiB 的单文件: {len(big)} ---")
for name, sz in big[:20]:
print(f" {sz/2**30:6.2f} GiB {name}")

Xet Storage Details

Size:
1.59 kB
·
Xet hash:
93b1ad12a7eb9c211e203cb94aab3b95dc765b42038f1f625cb61bc3c3cd0b7b

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.