【问题标题】:Powershell Script That uploads files to Azure File Storage将文件上传到 Azure 文件存储的 Powershell 脚本
【发布时间】:2018-03-13 13:15:38
【问题描述】:

所以我有一个 Azure 文件存储,你也可以映射一个集体驱动器。 目前它被选为 X 驱动器,但我遇到了一个小问题,因为有时我会因为它进入空闲状态而失去与驱动器的连接。

我遵循了这个指南,该指南为我提供了如何设置所有东西(“https://ppolyzos.com/2016/09/09/map-network-drive-to-azure-storage-account-file-storage/”)

我想使用以下脚本通过定时计划将一些文件移动到该特定文件夹。

With CreateObject("Scripting.FileSystemObject")
    .MoveFile "YourFolder\*.*", "X:\AzureFolder"
End With

上面的 vbscript 工作起来就像一个魅力,但正如我提到的,天蓝色文件存储实际上处于空闲状态,并且作业失败。

所以我现在的计划是实际创建一个 powershell 脚本,将身份验证值设置为硬变量,然后像上面的 vbscript 那样移动文件。 有谁知道是否有一些开源代码有人做过类似的事情?

我确实在网上找到了一些脚本(“https://gallery.technet.microsoft.com/scriptcenter/Recursively-upload-a-bfb615fe”) 但他们似乎没有工作。

如果有人能指出我正确的方向或提供有用的指南,我会很高兴。

谢谢!

【问题讨论】:

标签: powershell azure vbscript


【解决方案1】:

以下行将本地文件上传到 azure blob 存储中

$ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName ` -StorageAccountKey $StorageAccountKey
$ContainerName = "webimages"
New-AzureStorageContainer -Name $ContainerName -Context $ctx -Permission Blob
$localFileDirectory = "X:\Temp\AzureFilesToUpload\"
$files = Get-ChildItem -Path $localFileDirectory -Recurse -File
foreach($file in $files)
{
    $localFile = $localFileDirectory+$file
    Set-AzureStorageBlobContent -File $localFile -Container $ContainerName `-Blob $BlobName -Context $ctx
}
Get-AzureStorageBlob -Container $ContainerName -Context $ctx | Select Name

以下行将本地文件上传到存储帐户的 azure 文件部分而不是 blob

$ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName ` -StorageAccountKey $StorageAccountKey  
$s = New-AzureStorageShare $filesharename –Context $ctx # to create new file share
$localFileDirectory = "X:\Temp\AzureFilesToUpload\"
$files = Get-ChildItem -Path $localFileDirectory -Recurse -File  
foreach($file in $files)  
{  
    $localFile = $localFileDirectory+$file  
    Set-AzureStorageFileContent –Share $s –Source $localFile  
}  
  # if you don’t want them in the root folder of the share, but in a subfolder?  
New-AzureStorageDirectory –Share $s –Path $foldername
foreach($file in $files)  
{  
    $localFile = $localFileDirectory+$file  
    Set-AzureStorageFileContent –Share $s –Source $localFile –Path $foldername  
}  

【讨论】:

  • 我已经看到了,但是 Azure Blob 存储与 Azure 文件存储相比没有区别吗?
  • 我已经在上面的编辑中通过 powershell 列出了 Azure 文件存储的行。Azure 文件存储使用标准 SMB 协议提供共享存储。 Azure 虚拟机和云服务可以通过挂载共享跨应用程序组件共享文件数据,本地应用程序可以通过文件服务 REST API 访问共享中的文件数据,而 Blob 存储存储非结构化对象数据。 Blob 可以是任何类型的文本或二进制数据,例如文档、媒体文件或应用程序安装程序。 Blob 存储也称为对象存储。
  • 我在提供的脚本中添加了一些 cmets,因为我想知道在正确的位置放置什么。如果看起来正确,请往下看。
  • $ctx = New-AzureStorageContext MyStorrageAccountName $StorageAccountName ` TheStorageAccountKey-EndsWith== 通常? $StorageAccountKey $s = New-AzureStorageShare $filesharename filesharecontext?这是股票名称吗? $ctx New-AzureStorageDirectory thesharesname $s pathInTheShare? $foldername foreach($file in $files) { $localFile = $localFileDirectory+$file Set-AzureStorageFileContent thesharesname $s LokalFilderWhereFileisStored $localFile pathInTheShare? $文件夹名}
  • examples $StorageAccountKey=AxgCWYNr0+2LT7aDYZPROrAUghfj6xYRE17gHaCXcuCd3vLhnSHeRfF1LJfrwjOQxayOaZhcH750/ju9j3ncTw== $filesharename=images #它是文件共享名称 $foldername=webimages #它是下面子文件夹的名称用于更好理解的行 $s = New-AzureStorageShare images –Context $ctx # 如果 azure 门户中不存在文件共享 $s = Get-AzureStorageShare images –Context $ctx # 如果 azure 门户中已经存在文件共享 New-AzureStorageDirectory –Share $s –路径网络图像
猜你喜欢
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2021-11-29
  • 2017-01-24
  • 2017-08-19
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
相关资源
最近更新 更多