Azure CLI:用于并行上载文件的bash脚本

时间:2017-07-10 12:58:57

标签: bash azure-cli

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

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

1 个答案:

答案 0 :(得分:2)

目前,这是不可能的。使用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"