2017-01-28 48 views
0

我試圖使用PowerShell刪除Azure存儲目錄中刪除Azure存儲目錄: -無法通過PowerShell的

# the Context is already set correctly, not showing it here though  
if($myshare -eq $null) 
{ 
     $myshare=New-AzureStorageShare -Name "share" -Context $context 
} 
Remove-AzureStorageDirectory -ShareName "share" -Path "mycontainer/mydir/dir1" -Context $context -Confirm:$false 

我收到以下錯誤: -

Remove-AzureStorageDirectory : The remote server returned an error: (404) Not Found. HTTP 
Status Code: 404 - HTTP Error Message: The specified parent path does not exist. 
At C:\test.ps1:21 char:1 
+ Remove-AzureStorageDirectory -ShareName "share" -Path "mycontainer/my ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : CloseError: (:) [Remove-AzureStorageDirectory], StorageException 
    + FullyQualifiedErrorId : StorageException,Microsoft.WindowsAzure.Commands.Storage.File.Cmd 
    let.RemoveAzureStorageDirectory 

這是怎樣的我試圖刪除的文件夾(dir1)存在於我的存儲中: -

mycontainer/mydir/dir1 

因此,路徑非常多。我不確定它會如何期待。

回答

1

Remove-AzureStorageDirectory cmdlet來共享名路徑參數能夠按預期刪除路徑特定的文件夾。

我唯一能夠重現完全相同的錯誤信息的方式就是我故意使用錯誤的父文件夾,它是存儲文件共享下的根文件夾。

確保您的存儲文件共享下的父文件夾確實是「mycontainer」。

注:與Azure中的PowerShell 3.4.0(一月2017)

更新1測試:

基於在評論中提供的網址(https://mystorageaccount.blob.core.windows.net/mycontainer/mydir/dir1/),用戶的 「文件夾」 是在存儲Blob下而不是文件共享下,這顯然是爲什麼上面的cmdlet不起作用。

更新2

下面的PowerShell命令將刪除在「DIR1」

Get-AzureStorageBlob -Container "mycontainer" -blob "*dir1/*" -Context $context | ForEach-Object {Remove-AzureStorageBlob -Blob $_.Name -Container "mycontainer" -Context $context} 

注意所有的斑:刪除你的代碼上面文件共享相關的,因爲他們是不相關的

+0

基本上'mycontainer'是我的容器。所以我不確定它是否應該成爲路徑的一部分。但是這個命令沒有別的辦法知道我的容器名是什麼。我嘗試在一個階段跳過容器名稱,直接使用像mydir/dir1這樣的純文件夾路徑,但得到了相同的錯誤。你能不能在這裏提供你的例子,你可以運行無錯誤 – Dhiraj

+0

你能發佈隱藏敏感信息的完整路徑嗎? – juvchan

+0

https://mystorageaccount.blob.core.windows.net:443/mycontainer/mydir/dir1/ – Dhiraj