Cloudübergreifende S3-kompatible Objektspeicher-CLI zum Auflisten, Exportieren und Herunterladen von Buckets über AWS, Aliyun, Tencent, Huawei und weitere hinweg, mit anonymem Browsen und Bucket-Discovery-Scanning.
中文 | English
Ein cloudübergreifendes Kommandozeilen-Tool für Objektspeicher auf Basis des S3-Protokolls. Eine einzige Binärdatei für den Zugriff auf die Objektspeicher führender Cloud-Anbieter: AWS S3, Alibaba Cloud OSS, Tencent Cloud COS, Huawei Cloud OBS, Baidu Cloud BOS, Kingsoft Cloud KS3, UCloud US3, JD Cloud OSS, Google Cloud Storage, Cloudflare R2, Scaleway, Wasabi, DigitalOcean Spaces, Backblaze B2, MinIO und andere S3-kompatible Dienste.
https://...-URLs, erkennt die Domains der einzelnen Anbieter und löst Bucket-Name/Region auf;
URL-Abfrageparameter (prefix, delimiter, max-keys, continuation-token, marker, start-after)
dienen direkt als Filterbedingungen, ähnlich wie bei aws-s3-bucket-browserhttps://files.example.com/mybucket/), löst automatisch im path-style auf, S3-API-Passthrough genügt zum Auflisten und Herunterladen?token=abc für ein Auth-Gateway) werden automatisch in
jede API-Anfrage injiziert (Auflisten/Herunterladen/Hochladen/Vorzeichnen) und zwar vor der SigV4-Signierung-d, die einen vollständigen Scan erfordern, werden um ein Vielfaches beschleunigt)txt / csv / xlsx / yaml / markdown exportieren (--export)cp -r lädt alle passenden Dateien gemäß --include/--exclude/--prefix herunter und behält die Key-Verzeichnisstruktur beifind prüft in Stapelverarbeitung (mehrere auf der Kommandozeile/Standardeingabe), in welchem Cloud-Speicher ein Bucket liegt,
unterstützt Bucket-Namen und vollständige Bucket-URLs; anonyme Prüfung erkennt zugleich, ob anonymes Auflisten möglich ist; Buckets, die anonym aufgelistet werden können,
werden auf der Kommandozeile hellgrün mit ★ hervorgehoben; --export exportiert txt/csv/xlsx/yaml/md mit einem speziellen Feld listable_urloss serve bietet auf einem Port REST-API + OpenAPI-3-Dokumentation + MCP-Tool-Endpunkte,
oss mcp stdio|http|sse stellt ls/stat/cat/presign/find als MCP-Tools für Clients wie Claude bereit--color auto|always|never)OSS_LANG=zh|en).part-Dateien-x Proxy, -H benutzerdefinierte Header (UA / Cookie …), -k Zertifikatsprüfung überspringenMethode 1: Homebrew (macOS / Linux, empfohlen)```bash brew install ejfkdev/tap/oss
**Methode zwei: go install** (erfordert Go 1.24+)```bash
go install github.com/ejfkdev/oss@latest
Methode drei: Vorkompilierte Binärdateien
Laden Sie das komprimierte Paket für die entsprechende Plattform von GitHub Releases herunter
(linux/darwin/windows × amd64/arm64), entpacken Sie es und verwenden Sie es sofort. Die Release-Artefakte sind bereits von Symboltabellen befreit,
die Linux/Windows-Versionen sind mit UPX komprimiert (die macOS-Version nicht: UPX-gepackte Mach-O-Dateien werden vom Kernel blockiert).
Jede Version wird mit einer SHA256-Prüfsummendatei geliefert.
Methode vier: Kompilierung aus dem Quellcode (erfordert Go 1.24+):```bash git clone https://github.com/ejfkdev/oss && cd oss make build # 产物为 ./oss make install # 安装到 $GOPATH/bin make release # 本地交叉编译全部平台到 dist/
## Schnellstart```bash
# 匿名浏览公共桶(无需凭证)
oss ls https://noaa-nwm-pds.s3.amazonaws.com/?delimiter=/
oss ls "https://noaa-nwm-pds.s3.amazonaws.com/?prefix=nwm.20250101/&delimiter=/&max-keys=20"
oss cp -r https://noaa-nwm-pds.s3.amazonaws.com/nwm.20250101/ ./nwm/ --jobs 32
# 阿里云 OSS
oss ls oss://mybucket/logs/ --ak <AK> --sk <SK> --region cn-hangzhou
export OSS_ACCESS_KEY_ID=xxx OSS_SECRET_ACCESS_KEY=yyy # 或者用环境变量
oss ls mybucket --provider aliyun # 裸桶名写法
# 腾讯云 COS / 华为云 OBS
oss ls s3://bucket-1250000000 --provider tencent --region ap-guangzhou
oss ls https://bucket.obs.cn-north-4.myhuaweicloud.com/prefix/
# Yandex / Exoscale / Arvan
oss ls s3://mybucket --provider yandex
oss ls s3://mybucket --provider exoscale --region ch-gva-2
# MinIO / 自建 S3
oss ls s3://mybucket -e http://127.0.0.1:9000 --ak minioadmin --sk minioadmin
oss ls http://127.0.0.1:9000/mybucket/prefix/ # IP/端口自动识别为 path-style
# 走代理、自定义 UA / Cookie
oss ls s3://mybucket -x http://127.0.0.1:7890 \
-H "User-Agent: my-agent/1.0" -H "Cookie: session=abc"
# 目录形式转发的桶(反代把桶挂在路径下,S3 API 透传)
oss ls "https://files.example.com/mybucket/?prefix=2026/&max-keys=10"
oss cp "https://files.example.com/mybucket/<key>" ./
# 附带额外参数的访问(token 等会自动带到每个请求)
oss ls "http://gateway.example.com/bucket?token=abc"
oss cp "http://gateway.example.com/bucket/file.bin?token=abc" ./
| Form | Beispiel |
|---|---|
| scheme | s3://bucket/prefix、oss://、cos://、obs:// |
| reiner Bucket-Name | mybucket/prefix(mit --provider / -e) |
| HTTP URL | https://bucket.s3.us-east-1.amazonaws.com/prefix?prefix=logs/ |
Von der URL automatisch erkannte Anbieter-Domains (Auflösung von endpoint / region / bucket):