You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何同步含自定义--endpoint-url与标准地址的S3存储桶?

刚好处理过类似的需求,AWS CLI默认只会用一个endpoint配置,所以得用点小技巧来跨不同endpoint同步。下面给你两种实用方案:

方案一:使用多CLI配置文件(Profiles)

这个方法适合长期使用,配置一次之后就不用每次输一堆密钥了。

  1. 配置自定义存储的Profile
    运行下面的命令,按照提示输入你的StackPath存储的Access Key、Secret Key,Region填对应的值(比如示例里的us-east-2),输出格式直接回车留空就行:
    aws configure --profile stackpath

  2. 配置标准AWS S3的Profile
    如果你的机器上还没配置过AWS CLI,或者需要单独用一个profile来同步,运行:
    aws configure --profile aws-s3
    输入你的AWS账号Access Key、Secret Key,以及目标桶所在的Region(比如us-east-1)。

  3. 执行同步命令

  • 从自定义存储桶同步到标准S3
    aws s3 sync s3://your-stackpath-bucket/ s3://your-aws-s3-bucket/ --source-profile stackpath --profile aws-s3 --endpoint-url=https://s4.us-east-2.stackpathstorage.com
    这里--source-profile指定源存储的配置,--profile指定目标S3的配置,--endpoint-url对应源的自定义地址,目标标准S3会自动使用默认的s3.amazonaws.com

  • 从标准S3同步到自定义存储桶
    aws s3 sync s3://your-aws-s3-bucket/ s3://your-stackpath-bucket/ --source-profile aws-s3 --profile stackpath --endpoint-url=https://s4.us-east-2.stackpathstorage.com
    这次--endpoint-url是目标自定义存储的地址,--source-profile用AWS的配置,--profile用StackPath的配置。

方案二:直接在命令中指定所有参数(临时使用)

如果只是偶尔同步一次,不想配置Profiles,可以直接把密钥、Region等参数写在命令里:

  • 自定义存储 → 标准S3
aws s3 sync s3://your-stackpath-bucket/ s3://your-aws-s3-bucket/ \
--endpoint-url=https://s4.us-east-2.stackpathstorage.com \
--source-region us-east-2 \
--source-access-key-id YOUR_STACKPATH_ACCESS_KEY \
--source-secret-access-key YOUR_STACKPATH_SECRET_KEY \
--region us-east-1 \
--access-key-id YOUR_AWS_ACCESS_KEY \
--secret-access-key YOUR_AWS_SECRET_KEY
  • 标准S3 → 自定义存储
aws s3 sync s3://your-aws-s3-bucket/ s3://your-stackpath-bucket/ \
--endpoint-url=https://s4.us-east-2.stackpathstorage.com \
--source-region us-east-1 \
--source-access-key-id YOUR_AWS_ACCESS_KEY \
--source-secret-access-key YOUR_AWS_SECRET_KEY \
--region us-east-2 \
--access-key-id YOUR_STACKPATH_ACCESS_KEY \
--secret-access-key YOUR_STACKPATH_SECRET_KEY
重要注意事项
  • 权限检查:确保源桶的密钥有读取权限,目标桶的密钥有写入权限,否则会报权限错误。
  • 测试先行:在正式同步前,可以加--dryrun参数,预览会执行的操作,避免误操作:
    aws s3 sync ... --dryrun
  • 特性兼容性:有些S3兼容存储可能不支持AWS的全部特性,如果遇到报错,可以尝试加--no-progress或者检查存储提供商的文档,调整参数。

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

火山引擎 最新活动