Кроссплатформенный CLI для объектного хранилища, совместимого с S3, позволяющий просматривать, экспортировать и скачивать бакеты в AWS, Aliyun, Tencent, Huawei и других облаках, с анонимным просмотром и сканированием для обнаружения бакетов.
中文 | English
Кроссплатформенная утилита командной строки для работы с объектными хранилищами по протоколу S3. Один бинарный файл для работы с объектными хранилищами основных облачных провайдеров: 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 и других S3-совместимых сервисов.
https://..., распознаются домены различных провайдеров и извлекаются имя бакета и регион;
параметры запроса URL (prefix, delimiter, max-keys, continuation-token, marker, start-after)
напрямую используются как условия фильтрации, аналогично aws-s3-bucket-browserhttps://files.example.com/mybucket/), автоматически применяется path-style разбор, а S3 API прозрачно передаётся для листинга и скачивания?token=abc для шлюза аутентификации) автоматически добавляются
в каждый API-запрос (листинг/скачивание/загрузка/предподписанный URL) и внедряются до подписи SigV4-d, ускорение в сотни раз)txt / csv / xlsx / yaml / markdown (--export)cp -r скачивает все подходящие файлы по --include/--exclude/--prefix, сохраняя структуру каталогов ключейfind массово (несколько в командной строке/стандартный ввод) определяет, в каком облачном хранилище находится бакет,
поддерживаются как имя бакета, так и полный URL бакета; анонимное определение с одновременным выявлением возможности анонимного листинга; бакеты,
допускающие анонимный листинг, подсвечиваются в командной строке ярко-зелёной ★; --export выгружает txt/csv/xlsx/yaml/md со специальным полем listable_urloss serve на одном порту предоставляет REST API + документацию OpenAPI 3 + конечные точки инструментов MCP,
oss mcp stdio|http|sse предоставляет ls/stat/cat/presign/find как инструменты MCP для вызова клиентами вроде Claude--color auto|always|never)OSS_LANG=zh|en).part-x прокси, -H пользовательские заголовки (UA / Cookie …), -k пропуск проверки сертификатаСпособ первый: Homebrew (macOS / Linux, рекомендуется)```bash brew install ejfkdev/tap/oss
**Способ 2: go install** (требуется Go 1.24+)```bash
go install github.com/ejfkdev/oss@latest
Способ третий: предварительно скомпилированные бинарные файлы
Скачайте архив для соответствующей платформы со страницы GitHub Releases
(linux/darwin/windows × amd64/arm64) и распакуйте — готово к использованию. Артефакты релиза уже лишены таблицы символов,
версии для Linux/Windows сжаты с помощью UPX (версия для macOS не сжимается: упакованный UPX Mach-O будет заблокирован ядром).
К каждой версии прилагается файл контрольной суммы SHA256.
Способ четвёртый: компиляция из исходного кода (требуется Go 1.24+):```bash git clone https://github.com/ejfkdev/oss && cd oss make build # 产物为 ./oss make install # 安装到 $GOPATH/bin make release # 本地交叉编译全部平台到 dist/
## Быстрый старт```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" ./
| Форма | Пример |
|---|---|
| scheme | s3://bucket/prefix, oss://, cos://, obs:// |
| голое имя бакета | mybucket/prefix (вместе с --provider / -e) |
| HTTP URL | https://bucket.s3.us-east-1.amazonaws.com/prefix?prefix=logs/ |
Домены провайдеров, автоматически распознаваемые из URL (с извлечением endpoint / region / bucket):