[Azure]使用Azure Powershell上传本地目录中的文件文件(递归)
2017-06-22 15:34
465 查看
针对ASM环境的脚本:
针对ARM环境的脚本:
测试效果:
PS C:\Users\DanielHX> &C:\Users\DanielHX\Desktop\[ARM]upload_local_dir_to_storage.ps1 -SubscriptionName Internal-005 -StorageAccountName daneaststorag
e -ContainerName demo -SrcDir D:\test -ResourceGroupName daneastresourcegroup1
Copying D:\test\test1\1.txt to \test1/1.txt
Copying D:\test\test1\2.txt to \test1/2.txt
Copying D:\test\test2\test4\1.txt to \test2\test4/1.txt
Copying D:\test\test2\1.txt to \test2/1.txt
Copying D:\test\test2\2.txt to \test2/2.txt
Copying D:\test\test2\3.txt to \test2/3.txt
Copying D:\test\test3\1.txt to \test3/1.txt
Copying D:\test\test3\2.txt to \test3/2.txt
Copying D:\test\test3\3.txt to \test3/3.txt
Copying D:\test\test3\4.txt to \test3/4.txt
Copying D:\test\1.txt to /1.txt
All files in D:\test uploaded to demo.
PS C:\Users\DanielHX> &C:\Users\DanielHX\Desktop\[ASM]upload_local_dir_to_storage.ps1 -SrcDir D:\test -SubscriptionName Internal-005 -StorageAccountNa
me danieleaststorage -ContainerName test
Copying D:\test\test1\1.txt to \test1/1.txt
Copying D:\test\test1\2.txt to \test1/2.txt
Copying D:\test\test2\test4\1.txt to \test2\test4/1.txt
Copying D:\test\test2\1.txt to \test2/1.txt
Copying D:\test\test2\2.txt to \test2/2.txt
Copying D:\test\test2\3.txt to \test2/3.txt
Copying D:\test\test3\1.txt to \test3/1.txt
Copying D:\test\test3\2.txt to \test3/2.txt
Copying D:\test\test3\3.txt to \test3/3.txt
Copying D:\test\test3\4.txt to \test3/4.txt
Copying D:\test\1.txt to /1.txt
All files in D:\test uploaded to test.
param( # SrcDir [Parameter(Mandatory = $true)] [string]$SrcDir, # Subscription Name [Parameter(Mandatory = $true)] [string]$SubscriptionName, # StorageAccountName [Parameter(Mandatory = $true)] [string]$StorageAccountName, # Container Name [Parameter(Mandatory = $true)] [string]$ContainerName ) function Upload ($folder, $SrcDirLen) { $subItems = Get-ChildItem $folder; foreach ($item in $subItems) { if ($item.Mode -eq "d-----") { Upload $item.FullName $SrcDirLen; } else { $fileName = "$folder\$item"; $destpath = $folder.Substring($SrcDirLen); $blobName = "$destpath/$item"; Write-Host "Copying $fileName to $blobName"; [void](Set-AzureStorageBlobContent -File $filename -Container $ContainerName -Blob $blobName -Context $storageAccount.Context -Force); } } } $cred = Get-Credential -Message "Use your Azure account to login"; [void](Add-AzureAccount -Environment AzureChinaCloud -Credential $cred); [void](Select-AzureSubscription -SubscriptionName $SubscriptionName); $storageAccount = Get-AzureStorageAccount -StorageAccountName $StorageAccountName; upload $SrcDir $SrcDir.Length; Write-Host "All files in $SrcDir uploaded to $containerName
针对ARM环境的脚本:
param( # SrcDir [Parameter(Mandatory = $true)] [string]$SrcDir, # Subscription Name [Parameter(Mandatory = $true)] [string]$SubscriptionName, # ResourceGroupName [Parameter(Mandatory = $true)] [string]$ResourceGroupName, # StorageAccountName [Parameter(Mandatory = $true)] [string]$StorageAccountName, # Container Name [Parameter(Mandatory = $true)] [string]$ContainerName ) function Upload ($folder, $SrcDirLen) { $subItems = Get-ChildItem $folder; foreach ($item in $subItems) { if ($item.Mode -eq "d-----") { Upload $item.FullName $SrcDirLen; } else { $fileName = "$folder\$item"; $destpath = $folder.Substring($SrcDirLen); $blobName = "$destpath/$item"; Write-Host "Copying $fileName to $blobName"; [void](Set-AzureStorageBlobContent -File $filename -Container $ContainerName -Blob $blobName -Context $storageAccount.Context -Force); } } } $cred = Get-Credential -Message "Use your Azure account to login"; [void](Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $cred); [void](Select-AzureRmSubscription -SubscriptionName $SubscriptionName); $storageAccount = Get-AzureRmStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName; Upload $SrcDir $SrcDir.Length; Write-Host "All files in $SrcDir uploaded to $ContainerName.";
测试效果:
PS C:\Users\DanielHX> &C:\Users\DanielHX\Desktop\[ARM]upload_local_dir_to_storage.ps1 -SubscriptionName Internal-005 -StorageAccountName daneaststorag
e -ContainerName demo -SrcDir D:\test -ResourceGroupName daneastresourcegroup1
Copying D:\test\test1\1.txt to \test1/1.txt
Copying D:\test\test1\2.txt to \test1/2.txt
Copying D:\test\test2\test4\1.txt to \test2\test4/1.txt
Copying D:\test\test2\1.txt to \test2/1.txt
Copying D:\test\test2\2.txt to \test2/2.txt
Copying D:\test\test2\3.txt to \test2/3.txt
Copying D:\test\test3\1.txt to \test3/1.txt
Copying D:\test\test3\2.txt to \test3/2.txt
Copying D:\test\test3\3.txt to \test3/3.txt
Copying D:\test\test3\4.txt to \test3/4.txt
Copying D:\test\1.txt to /1.txt
All files in D:\test uploaded to demo.
PS C:\Users\DanielHX> &C:\Users\DanielHX\Desktop\[ASM]upload_local_dir_to_storage.ps1 -SrcDir D:\test -SubscriptionName Internal-005 -StorageAccountNa
me danieleaststorage -ContainerName test
Copying D:\test\test1\1.txt to \test1/1.txt
Copying D:\test\test1\2.txt to \test1/2.txt
Copying D:\test\test2\test4\1.txt to \test2\test4/1.txt
Copying D:\test\test2\1.txt to \test2/1.txt
Copying D:\test\test2\2.txt to \test2/2.txt
Copying D:\test\test2\3.txt to \test2/3.txt
Copying D:\test\test3\1.txt to \test3/1.txt
Copying D:\test\test3\2.txt to \test3/2.txt
Copying D:\test\test3\3.txt to \test3/3.txt
Copying D:\test\test3\4.txt to \test3/4.txt
Copying D:\test\1.txt to /1.txt
All files in D:\test uploaded to test.
相关文章推荐
- 使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- 使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- CaptainGan------使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置、功能扩展(如自定义文件上传子目录、自定义文件名、上传图片的后期处理等)、以及安全性进行初步的阐述。
- Windows Azure Drive(一): 在云端使用了NTFS 本地文件系统读写API
- ubuntu下如何使用sshfs加载远程服务器目录到本地文件系统
- [New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名
- [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)
- lamp使用php处理上传文件,调用move_uploaded_file函数遇到目录写权限问题及解决过程
- 将数据源配置放在Tomcat的config目录下,使用curl工具上传文件
- 使用PuTTy实现本地文件上传下载
- [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)
- 使用Struts上传文件,用FormFile取得上传文件的本地绝对路径
- Powershell 递归遍历目录下的文件内容
- 如何使用python递归查找并删除某个目录下的文件
- 使用PuTTy实现本地文件上传下载
- 使用递归显示某个文件目录下所有文件名
- [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)
- 【转载】使用VHDUpload上传VHD文件到云存储,并在Azure VM中加挂Azure Drive