如何识别GCP Storage Transfer Service从AWS迁移时跳过的同名文件
识别GCP Storage Transfer Service跳过的同名文件
以下是几种直接可行的方法:
方法1:查看迁移任务的详细日志
- 登录GCP控制台,进入Cloud Storage Transfer Service页面
- 定位到对应的迁移任务,点击进入任务详情页
- 在日志板块中,筛选状态为
SKIPPED且错误原因是ALREADY_EXISTS的条目,每条记录会明确显示被跳过的文件路径和名称 - 若日志条目较多,可将日志导出至指定GCS存储桶,再通过
gsutil命令下载到本地查看:
之后可用gsutil cp gs://[你的日志存储桶路径]/transfer-log-*.json ./skipped-files-logs.jsonjq工具快速过滤出目标文件:jq '.[] | select(.status == "SKIPPED" and .errorReason == "ALREADY_EXISTS") | .objectName' skipped-files-logs.json
方法2:对比源(AWS)和目标(GCP)存储桶的文件列表
- 导出AWS源桶的完整文件列表:
aws s3 ls s3://[AWS源桶名称] --recursive > aws-bucket-files.txt - 导出GCP目标桶的完整文件列表:
gsutil ls gs://[GCP目标桶名称]/** > gcp-bucket-files.txt - 对两个文件排序后,用
comm命令找出在源桶存在、且目标桶已有的文件(即迁移时被跳过的同名文件):
注:sort aws-bucket-files.txt > sorted-aws.txt sort gcp-bucket-files.txt > sorted-gcp.txt comm -12 sorted-aws.txt sorted-gcp.txt > skipped-files.txtcomm -12会输出两个文件的共同行,也就是两边都存在的同名文件。
方法3:通过Cloud Logging精准查询
- 进入GCP Cloud Logging页面
- 在查询框中输入以下过滤语句:
resource.type="cloud_transfer_job" AND jsonPayload.status="SKIPPED" AND jsonPayload.errorReason="ALREADY_EXISTS" - 执行查询后,结果中的
jsonPayload.objectName字段即为被跳过的文件名 - 可将查询结果导出为CSV/JSON格式,便于批量处理或查看
内容的提问来源于stack exchange,提问作者devops on the road
相关产品推荐
相关产品推荐

