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

如何通过端点及访问密钥实现S3桶到MinIO桶的数据传输

S3与MinIO跨存储数据传输方案解答

跨桶直接传输API支持情况

MinIO原生兼容AWS S3 API,本身支持你说的指定两端凭证直接传输的场景。但你不需要自行封装调用底层API,官方已经提供了现成的、更稳定的实现方案。

最优实现方案:使用MinIO客户端mc直接同步

这种方案不需要把数据落地到EC2本地磁盘,全程走流式传输,只占用EC2网络带宽,同时原生支持断点续传、大对象分片、并发控制等能力,开发和维护成本最低。

操作步骤

  1. 先为mc客户端配置两端的存储别名
    • 配置AWS S3别名:
    mc alias set s3 https://s3.<AWS区域代码>.amazonaws.com <S3访问密钥> <S3私密密钥>
    
    • 配置自建MinIO别名:
    mc alias set minio http://<MinIO服务地址>:<服务端口> <MinIO访问密钥> <MinIO私密密钥>
    
  2. 按需执行同步操作
    • 一次性全量同步整个桶:
    mc mirror s3/<源S3桶名> minio/<目标MinIO桶名>
    
    • 持续同步源桶新增数据(监听模式):
    mc mirror --watch s3/<源S3桶名> minio/<目标MinIO桶名>
    
    • 同步指定前缀的部分数据:
    mc cp -r s3/<源S3桶名>/<指定前缀> minio/<目标MinIO桶名>/<指定前缀>
    

性能优化建议

  • 如果你部署MinIO的EC2和S3桶在同一AWS区域,建议给EC2配置S3 VPC端点,同步流量走AWS内网,避免公网带宽限制,同时节省公网流量费用。
  • 大桶同步可以添加--parallel <并发数>参数调整并发请求量,根据你的EC2带宽和MinIO集群规模调整,比如设置32并发:
mc mirror --parallel 32 s3/<源S3桶名> minio/<目标MinIO桶名>

自研API实现说明

如果确实需要自行通过API实现,可以直接调用MinIO的S3兼容PutObject接口和AWS S3的GetObject接口,拉取S3对象流直接写入MinIO即可,不需要本地存储。但需要自行处理异常重试、断点续传、分片上传等逻辑,复杂度远高于直接使用mc客户端,非特殊需求不推荐。

内容的提问来源于stack exchange,提问作者SAIJAL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:45:04