【问题标题】:Uploading and downloading files from Azure to Windows using PowerShell使用 PowerShell 将文件从 Azure 上传和下载到 Windows
【发布时间】:2017-07-29 14:03:50
【问题描述】:

我正在编写一个 PowerShell 脚本来与我的 Microsoft Azure 帐户进行通信,并且在使用 Set-AzureStorageBlobContent 和 Get-AzureStorageBlobContent 模块上传和下载文件时遇到了问题。

$Upload = @{
    Context = $storageContext;
    Container = $container;
    File = "C:\... \file.csv";
    }
Set-AzureStorageBlobContent @Upload -Force;

我第一次运行它时,它似乎开始上传,但它保持在 0% 并且永远不会上升。如果我取消它并尝试再次执行我的脚本,我会收到一条错误消息: “Set-AzureStorageBlobContent:已存在具有相同源和目标的传输操作。” 当我尝试从 Azure 下载现有 blob 时,会发生几乎相同的事情。

$params = @{
    Context = $storageContext;
    Container = $container;
    Blob = $blob;
    Destination = $dest
    }
New-Item -Path $dest -ItemType Directory -Force
Get-AzureStorageBlobContent @params

我尝试重新安装 Azure.Storage,它是包含 cmdlet Get-AzureStorageBlobContent 和 Set-AzureStorageBlobContent 的模块,但我没有运气。是我做错了什么,还是这段代码有问题?

【问题讨论】:

  • 听起来可能是安全设置:可能吗?
  • 我认为你可能是对的。我尝试在运行脚本(不受限制)时将执行策略更改为绕过,并且它起作用了。即>> powershell -ExecutionPolicy ByPass -File "C:\..."
  • Get-ExecutionPolicy 的输出是什么?
  • 对我来说,Get-ExecutionPolicy 让我不受限制,因为这是我使用 Set-ExecutionPolicy 设置的。但是,我前面提到的命令的范围只是针对那一次执行。

标签: powershell azure


【解决方案1】:

这似乎与您的 $Upload 变量有关。试试这个:

Get-ChildItem –Path C:\Images\* | Set-AzureStorageBlobContent -Container "yourcontainername"

更多信息:https://docs.microsoft.com/en-us/azure/storage/storage-powershell-guide-full

【讨论】:

    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多