使用gsutil 工具,我们可以执行广泛的存储桶和对象管理任务,包括:
- 创建和删除存储桶。
- 上传、下载和删除对象。
- 列出存储桶和对象。移动、复制和重命名对象。
我们可以使用 gsutil rsync 和 gsutil cp 操作将数据从 Google Cloud Storage 存储桶复制到 amazon s3 存储桶。而
gsutil rsync从bucket中收集所有元数据并将数据同步到s3
gsutil -m rsync -r gs://your-gcs-bucket s3://your-s3-bucket
gsutil cp 一个一个地复制文件,由于传输速度不错,它大约在 1 分钟内复制了 1 GB。
gsutil cp gs://<gcs-bucket> s3://<s3-bucket-name>
如果您有大量具有高数据量的文件,请使用此 bash 脚本,并在亚马逊或 GCP 实例中使用 screen 命令在多线程的后台运行它,并配置 AWS 凭证并验证 GCP 身份验证。
在运行脚本之前列出所有文件并重定向到文件并读取文件作为脚本中的输入以复制文件
gsutil ls gs://<gcs-bucket> > file_list_part.out
Bash 脚本:
#!/bin/bash
echo "start processing"
input="file_list_part.out"
while IFS= read -r line
do
command="gsutil cp ${line} s3://<bucket-name>"
echo "command :: $command :: $now"
eval $command
retVal=$?
if [ $retVal -ne 0 ]; then
echo "Error copying file"
exit 1
fi
echo "Copy completed successfully"
done < "$input"
echo "completed processing"
执行 Bash 脚本并将输出写入日志文件以检查已完成和失败文件的进度。
bash file_copy.sh > /root/logs/file_copy.log 2>&1