本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

这是一个用于读写通用负载到Amazon S3的API服务,支持通过UUID标识对数据进行PUT、GET和DELETE操作。该服务可配置从Kafka读取负载并存储到S3,适用于需要将通用格式数据持久化到S3或从Kafka消费数据并存储的场景。
| 环境变量 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
PORT | 服务监听端口 | 无 | 是 |
BUCKET_NAME | S3存储桶名称 | 无 | 是 |
AWS_REGION | AWS区域(如eu-west-1) | 无 | 是 |
AWS_ACCESS_KEY_ID | AWS访问密钥ID(或通过~/.aws/credentials文件配置) | 无 | 是 |
AWS_SECRET_ACCESS_KEY | AWS密钥(或通过~/.aws/credentials文件配置) | 无 | 是 |
BUCKET_PREFIX | S3对象前缀路径(添加到所有上传项的文件夹路径) | 空 | 否 |
WORKERS | 并发下载数量(下载所有项时的并发数) | 10 | 否 |
SRC_CONCURRENT_PROCESSING | 是否启用Kafka消息并发处理 | false | 否 |
RESOURCE_PATH | 资源路径(如"concepts",用于自定义API路径) | 空 | 否 |
docker run -d \ -p 8080:8080 \ -e PORT=8080 \ -e BUCKET_NAME="my-s3-bucket" \ -e AWS_REGION="eu-west-1" \ -e AWS_ACCESS_KEY_ID="AKID***" \ -e AWS_SECRET_ACCESS_KEY="MY-SECRET-KEY" \ coco/generic-rw-s3
docker run -d \ -p 8080:8080 \ -e PORT=8080 \ -e BUCKET_NAME="my-s3-bucket" \ -e AWS_REGION="eu-west-1" \ -e AWS_ACCESS_KEY_ID="AKID***" \ -e AWS_SECRET_ACCESS_KEY="MY-SECRET-KEY" \ -e BUCKET_PREFIX="kafka-data" \ coco/generic-rw-s3 --source-addresses="kafka-broker:9092" --source-group="consumer-group-1" --source-topic="data-topic"
# 安装dep curl [***] | sh # 获取源码 go get github.com/Financial-Times/generic-rw-s3 cd $GOPATH/src/github.com/Financial-Times/generic-rw-s3 # 安装依赖 dep ensure -v -vendor-only # 编译 go install
# 设置必填环境变量 export PORT=8080 export BUCKET_NAME="my-s3-bucket" export AWS_REGION="eu-west-1" # 配置AWS凭证(或通过~/.aws/credentials文件) export AWS_ACCESS_KEY_ID="AKID***" export AWS_SECRET_ACCESS_KEY="MY-SECRET-KEY" # 可选配置 export BUCKET_PREFIX="data-prefix" export WORKERS=20 export SRC_CONCURRENT_PROCESSING=true # 启动服务 $GOPATH/bin/generic-rw-s3
$GOPATH/bin/generic-rw-s3 --port=8080 --bucketName="my-s3-bucket" --source-addresses="kafka-broker:9092" --source-group="consumer-group" --source-topic="data-topic"
通过UUID写入负载到S3,请求头需指定Content-Type(将作为S3对象的Content-Type存储)。
示例:
curl -H "Content-Type: application/json" -X PUT -d '{"key":"value"}' http://localhost:8080/bcac6326-dd23-4b6a-9dfa-c2fbeb9737d9
S3对象路径格式:<bucket_prefix>/<uuid前8位>/<uuid中间4位>/<uuid中间4位>/<uuid中间4位>/<uuid后12位>(如prefix/123e4567/e89b/12d3/a456/426655440000)
读取指定UUID对应的S3对象,返回存储的负载数据。若不存在返回404。
示例:
curl http://localhost:8080/bcac6326-dd23-4b6a-9dfa-c2fbeb9737d9
删除指定UUID对应的S3对象,成功返回204。
示例:
curl -X DELETE http://localhost:8080/bcac6326-dd23-4b6a-9dfa-c2fbeb9737d9
流式返回存储桶中所有负载数据。
流式返回存储桶中所有UUID列表,每行一个JSON对象。
示例响应:
{"ID":"dcfa65d6-3849-445e-ac6a-15bc5a17e954"} {"ID":"2136f8ad-e94e-45cb-b616-336f38533214"}
http://localhost:8080/__healthhttp://localhost:8080/__build-info 或 http://localhost:8080/build-infohttp://localhost:8080/__gtg服务会在S3对象元数据中存储负载的哈希值。当ONLY_UPDATES_ENABLED环境变量设为true时,会对比新负载与存储哈希:
X-Ignore-Hash: true绕过哈希检查,强制写入。需确保AWS凭证对目标S3存储桶有读写权限,推荐策略配置:
{ "Version": "2012-10-17", "Id": "PolicyForS3RW", "Statement": [ { "Sid": "AllowFullAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<AWS账户ID>:user/<IAM用户名>" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ] } ] }

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429