我知道现在为您回答这个问题有点晚了,但它可能会帮助其他试图将数据迁移从 Azure Blob 存储 到 谷歌云存储
Google Cloud Storage 和 Azure Blob Storage 这两个平台都是存储服务,没有命令行界面,我们可以简单地在其中运行传输命令。为此,我们需要一个实际上能够运行所需命令的中间计算实例。我们将按照以下步骤实现云到云传输。
首先,在 Google Cloud Platform 中创建一个计算实例。您无需创建计算能力强大的实例,您只需要一台具有 2 核 CPU 和 4 GB 内存的 Debian-10GB 机器。
在早期,您会将数据下载到 GCP 中的计算实例,然后将其进一步移动到 Google Cloud Storage。但现在随着 gcsfuse 的引入,我们可以简单地将 Google 存储帐户挂载为文件系统。
创建计算实例后,只需从 Google 控制台使用 SSH 登录到该实例并安装以下软件包。
Install Google Cloud Storage Fuse
export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s`
echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update -y
sudo apt-get install gcsfuse -y
# Create local folder
mkdir local_folder_name
# Mount the Storage Account as a bucket
gcsfuse <bucket_name> <local_folder_path>
Install Azcopy
wget https://aka.ms/downloadazcopy-v10-linux
tar -xvf downloadazcopy-v10-linux
sudo cp ./azcopy_linux_amd64_*/azcopy /usr/bin/
安装这些软件包后,下一步就是创建共享签名访问密钥。如果你有 Azure Blob 存储资源管理器,只需右键单击目录树中的存储帐户名称并选择 Generate Shared Access Signature
现在您必须为您的 blob 对象创建一个 URL。为此,只需右键单击任何 blob 对象,选择 Properties 并从对话框中复制 URL。
您的最终网址应该是这样的。
<https://URL_to_file> + <SAS Token>
https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D
现在,使用以下命令开始将文件从 Azure 复制到 GCP 存储。
azcopy cp --recursive=true "<-source url->" "<-destination url->"
如果您的工作失败,您可以使用以下方式列出您的工作:
azcopy jobs list
并恢复失败的工作:
azcopy jobs resume jobid <-source sas->
您可以将所有步骤整理到一个 bash 中,让它一直运行,直到您的数据传输完成。
仅此而已!我希望它可以帮助别人