Azure CLI : bash 并行上传文件的脚本

Azure CLI : bash script to upload files in parallel

是否有 Azure CLI 上传选项可以将文件并行上传到 blob 存储。有很多文件的文件夹。目前我唯一的选择是使用以下命令执行 for 循环并按顺序上传。

az storage blob upload --file $f --container-name $CONTAINERNAME --name $FILEINFO

目前还不可能。对于 Azure CLI 2.0,没有选项或参数可以递归地将指定目录的内容上传到 Blob 存储。所以,Azure CLi 2.0 不支持并行上传文件。

如果你想并行上传多个文件,你可以使用Azcopy

AzCopy /Source:C:\myfolder /Dest:https://myaccount.blob.core.windows.net/mycontainer /DestKey:key /S

指定选项 /S 将指定目录的内容递归上传到 Blob 存储,这意味着所有子文件夹及其文件也将被上传。

正如您所说,您可以使用循环上传文件,但它不支持并行上传文件。尝试以下脚本。

export AZURE_STORAGE_ACCOUNT='PUT_YOUR_STORAGE_ACCOUNT_HERE'
export AZURE_STORAGE_ACCESS_KEY='PUT_YOUR_ACCESS_KEY_HERE'

export container_name='nyc-tlc-sf'
export source_folder='/Volumes/MacintoshDisk02/Data/Misc/NYC_TLC/yellow/2012/*'
export destination_folder='yellow/2012/'

#echo "Creating container..."
#azure storage container create $container_name

for f in $source_folder
do
  echo "Uploading $f file..."
  azure storage blob upload $f $container_name $destination_folder$(basename $f)
done

echo "List all blobs in container..."
azure storage blob list $container_name

echo "Completed"