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

如何将AWS S3数据传输至GCS存储桶子文件夹?

解决方案:使用Storage Transfer API指定GCS目标子文件夹

你遇到的问题其实很容易解决——Storage Transfer API的GcsData对象支持通过setPrefix()方法指定目标子文件夹,只是这个选项在操作界面里藏得比较深,在API中需要显式配置。

1. 修改你的TransferJob代码

在你当前的代码中,GcsData只设置了桶名,只要加上目标子文件夹的前缀即可:

.setGcsDataSink(
    new GcsData()
        .setBucketName(DESTINATION_BUCKET)
        .setPrefix("myDestination/") // 这里指定目标子文件夹,末尾斜杠可选,但建议加上更直观
)

这样配置后,S3存储桶中的数据就会被同步到gs://myDestBkt/myDestination/路径下,完全符合你的预期。

2. 关于Storage Transfer API的规模与完整性保障

你提到对gsutil rsync的数据规模和完整性有顾虑,这点完全可以放心:

  • 大规模数据适配:Storage Transfer API是Google托管的服务,原生支持PB级别的数据传输,自动处理并发调度、失败重试和带宽优化,比gsutil更适合超大规模的迁移场景。
  • 数据完整性校验:API默认会对传输的对象进行MD5哈希校验,确保源端和目标端的数据完全一致;同时你可以通过代码中的TransferOptions参数,灵活控制覆盖、删除等行为,进一步保障数据安全。

额外注意事项

  • 目标前缀不需要以/开头,myDestination和myDestination/的效果一致,但加上斜杠更清晰表示是文件夹路径。
  • 确保你的服务账号拥有:S3源桶的读取权限(如s3:GetObject),以及GCS目标桶的写入权限(如storage.objects.create)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:43:29