{"id":2256,"date":"2018-08-17T13:04:16","date_gmt":"2018-08-17T11:04:16","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=2256"},"modified":"2018-08-17T20:18:21","modified_gmt":"2018-08-17T18:18:21","slug":"azure-file-storage","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2018\/08\/17\/azure-file-storage\/","title":{"rendered":"Azure File storage"},"content":{"rendered":"<p><em>Azure File storage<\/em> umo\u017cliwia dost\u0119p do wsp\u00f3\u0142dzielonych zasob\u00f3w dyskowych przez protok\u00f3\u0142 Samba Message Block (SMB).\u00a0 Zasoby mog\u0105 by\u0107 wsp\u00f3\u0142dzielone tylko pomi\u0119dzy wirtualnym maszynami i us\u0142ugami dzia\u0142aj\u0105cymi w chmurze w tym samym regionie., nie mog\u0105 by\u0107 montowane na komputerach dzia\u0142aj\u0105cych poza chmur\u0105. Zewn\u0119trzne aplikacje mog\u0105 mie\u0107 dost\u0119p do file storaga\u00a0 poprzez REST API.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2261 size-full\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/Azuure-File-Storage2.png\" alt=\"\" width=\"737\" height=\"354\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Azuure-File-Storage2.png 737w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Azuure-File-Storage2-300x144.png 300w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/p>\n<p><span style=\"color: #3366ff;\">Configure shared storage using Azure File service<\/span><\/p>\n<p>Nazwa zasobu podobnie jak nazwa domeny mo\u017ce si\u0119 sk\u0142ada\u0107 tylko z ma\u0142ych liter, cyfr i my\u015blnika wewn\u0105trz liter lub cyfr.<\/p>\n<p>Utworzenie zasobu przy pomocy PowerShella:<\/p>\n<pre class=\"lang:ps decode:true\">PS&gt; $ResourceGroup = \"RG01\"\r\nPS&gt; $StorageAccountName = \"mystorageaccount0002\"\r\nPS&gt; $ShareName=\"myshare01\"\r\n\r\nPS&gt; $StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $ResourceGroup -AccountName $StorageAccountName).Value[0]\r\nPS&gt; $StorageContext = New-AzureStorageContext \u2013StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey\r\n\r\nPS&gt; New-AzureStorageShare -Name $ShareName -Context $StorageContext\r\n\r\nFile End Point: https:\/\/mystorageaccount0002.file.core.windows.net\/\r\n\r\nName LastModified IsSnapshot SnapshotTime\r\n---- ------------ ---------- ------------\r\nmyshare01 2018-08-17 12:07:08 +0... False<\/pre>\n<p>Wy\u015bwietlenie listy zasob\u00f3w:<\/p>\n<pre class=\"lang:ps decode:true\">PS&gt; Get-AzureStorageShare -Name myshare01 -Context $StorageContext\r\n\r\nFile End Point: https:\/\/mystorageaccount0002.file.core.windows.net\/\r\n\r\nName LastModified IsSnapshot SnapshotTime\r\n---- ------------ ---------- ------------\r\nmyshare01 2018-08-17 12:07:08 +00:00 False<\/pre>\n<p>To samo gdy nie znamy nazwy kontekstu:<\/p>\n<pre class=\"lang:ps decode:true \">PS&gt; Set-AzureRmCurrentStorageAccount -ResourceGroupName \"RG01\" -AccountName \"mystorageaccount0002\"\r\nmystorageaccount0002\r\nPS &gt; Get-AzureStorageShare -Name myshare01\r\n\r\nFile End Point: https:\/\/mystorageaccount0002.file.core.windows.net\/\r\n\r\nName LastModified IsSnapshot SnapshotTime\r\n---- ------------ ---------- ------------\r\nmyshare01 2018-08-17 12:07:08 +00:00 False<\/pre>\n<p>Tworzenie katalogu w zasobie:<\/p>\n<pre class=\"lang:ps decode:true\">PS&gt; New-AzureStorageDirectory -ShareName $ShareName -Path \"Documents\" -Context $StorageContext\r\n\r\nDirectory: https:\/\/mystorageaccount0002.file.core.windows.net\/myshare01\r\n\r\nType Length Name\r\n---- ------ ----\r\n1 Documents<\/pre>\n<p>Listowanie katalog\u00f3w i plik\u00f3w dost\u0119pnych w zasobie:<\/p>\n<pre class=\"lang:ps decode:true\">PS C:\\&gt; Get-AzureStorageFile -ShareName $ShareName<\/pre>\n<p>Tworzenie podkatalogu:<\/p>\n<pre class=\"lang:ps decode:true\">PS&gt; New-AzureStorageDirectory -ShareName $ShareName -Path \"Documents\/Subdirectory\" -Context $StorageContext\r\n   Directory: https:\/\/mystorageaccount0002.file.core.windows.net\/myshare01\/Documents\r\n\r\nType                Length Name\r\n----                ------ ----\r\n                         1 Subdirectory<\/pre>\n<p>Kasowanie podkatalogu (lub katalogu):<\/p>\n<pre class=\"lang:ps decode:true\">PC&gt; Remove-AzureStorageDirectory -ShareName $ShareName -Path documents\/Subdirectory -Context $StorageContext<\/pre>\n<p>Do nowo utworzonego katalogu mo\u017cna wgra\u0107 pliki:<\/p>\n<pre class=\"lang:ps decode:true\">PS&gt; ForEach($file in (Get-ChildItem -Path D:\\Documents))\r\n{\r\n  Set-AzureStorageFileContent -ShareName $ShareName -Path \"documents\" -Source $file.FullName -Context $StorageContext -Force\r\n}<\/pre>\n<p>Listowanie plik\u00f3w dost\u0119pnych w uprzednio za\u0142o\u017conym katalogu &#8220;documents&#8221;:<\/p>\n<pre class=\"lang:ps decode:true\">PS C:\\&gt; Get-AzureStorageFile -ShareName $ShareName -Path \"documents\" | Get-AzureStorageFile\r\n\r\nDirectory: https:\/\/mystorageaccount0002.file.core.windows.net\/myshare01\/Documents\r\n\r\nType Length Name\r\n---- ------ ----\r\n1 Nerwy zszywanie.pdf\r\n1 Nerwy.pdf<\/pre>\n<p>Kasowanie wszystkich plik\u00f3w z katalogu Documents:<\/p>\n<pre class=\"lang:ps decode:true\">PS C:\\&gt; Get-AzureStorageFile -ShareName $ShareName -Path \"documents\" | Get-AzureStorageFile | Remove-AzureStorageFile<\/pre>\n<p>Kasowanie pojedynczego pliku:<\/p>\n<pre class=\"lang:ps decode:true \">PS C:\\&gt; Remove-AzureStorageFile -ShareName $ShareName -Path \"documents\/nazwa_pliku\"<\/pre>\n<p>Kasowanie zasobu:<\/p>\n<pre class=\"lang:ps decode:true\">PS C:\\&gt;Remove-AzureStorageShare -Name $ShareName<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Manage SMB file storage<\/span><\/p>\n<p>Montowanie zasob\u00f3w Azure File na virtualnych maszynach ( tylko dzia\u0142aj\u0105cych w chmurze w tym samym regionie co utworzony zas\u00f3b):<\/p>\n<pre class=\"lang:ps decode:true\">PS C:\\&gt; New-PSDrive -Name \"M\" -Root \"\\\\mystorageaccount0002.file.core.windows.net\\myshare01\" -Credential\r\n(Get-Credential sherift) -PSProvider FileSystem -Persist<\/pre>\n<p>Parametry tego cmdleta:<\/p>\n<ul>\n<li><code>Name<\/code> &#8211; nazwa dysku.<\/li>\n<li><code>PSProvider<\/code> &#8211; dostawca u\u017cywany do montowania tego zasobu . Dost\u0119pni dostawcy:<code> FileSystem<\/code>, <code>Certificate<\/code>, and <code>Registry<\/code>. Pe\u0142na lista dostawc\u00f3w wy\u015bwietla si\u0119 cmdletem <code>Get-PSProvider<\/code>.<\/li>\n<li><code>Root<\/code> &#8211; \u015bcie\u017cka do zasobu.<\/li>\n<li><code>Persist<\/code> &#8211; u\u017cywane do mapowania stacji dysk\u00f3w.<\/li>\n<li><code>Credential<\/code> &#8211;\u00a0 nazwa u\u017cytkownika do konta storage, has\u0142em jest storage access key.<\/li>\n<\/ul>\n<p>Jest to odpowiednik polecenia<code> net use<\/code> z linii komend Windowsa.<\/p>\n<pre class=\"lang:ps decode:true \">net use m: \\\\mystorageaccount0002.file.core.windows.net\\myshare01<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Configure Azure File Share snapshots<\/span><\/p>\n<p>Kasowanie zasobu i wszystkich jego backup\u00f3w:<\/p>\n<pre class=\"lang:ps decode:true \">PS C:\\&gt;Remove-AzureStorageShare -Name \"ContosoShare06\" -IncludeAllSnapshot<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Por\u00f3wnanie Azure Blobs z Azure File:<\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/pl-pl\/azure\/storage\/common\/storage-decide-blobs-files-disks?toc=%2fazure%2fstorage%2ffiles%2ftoc.json\">https:\/\/docs.microsoft.com\/pl-pl\/azure\/storage\/common\/storage-decide-blobs-files-disks?toc=%2fazure%2fstorage%2ffiles%2ftoc.json<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure File storage umo\u017cliwia dost\u0119p do wsp\u00f3\u0142dzielonych zasob\u00f3w dyskowych przez protok\u00f3\u0142 Samba Message Block (SMB).\u00a0 Zasoby mog\u0105 by\u0107 wsp\u00f3\u0142dzielone tylko pomi\u0119dzy wirtualnym maszynami i us\u0142ugami dzia\u0142aj\u0105cymi w chmurze w tym samym regionie., nie mog\u0105 by\u0107 montowane na komputerach dzia\u0142aj\u0105cych poza chmur\u0105. Zewn\u0119trzne aplikacje mog\u0105 mie\u0107 dost\u0119p do file storaga\u00a0 poprzez REST API.<\/p>\n","protected":false},"author":1,"featured_media":2257,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2256"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=2256"}],"version-history":[{"count":19,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2256\/revisions"}],"predecessor-version":[{"id":2279,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2256\/revisions\/2279"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/2257"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=2256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=2256"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=2256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}