1+ Invoke-LiveTestScenario - Name " File basics" - Description " Test File basic operation" - ScenarioScript `
2+ {
3+ param ($rg )
4+
5+ $rgName = $rg.ResourceGroupName
6+ $storageAccountName = New-LiveTestStorageAccountName
7+ $shareName = New-LiveTestResourceName
8+ $testfile512path = " $PSScriptRoot \TestFiles\testfile512"
9+ $localDestFile = " $PSScriptRoot \TestFiles\dest"
10+ $location = $rg.Location
11+ $account = New-AzStorageAccount - ResourceGroupName $rgName - Name $storageAccountName - Location $location - SkuName Standard_GRS - AllowSharedKeyAccess $true - Tag @ {" Az.Sec.DisableAllowSharedKeyAccess::Skip" = " For Powershell test." }
12+ $ctx = $account.Context
13+ $ctx1 = New-AzStorageContext - StorageAccountName $storageAccountName - StorageAccountKey (Get-AzStorageAccountKey - ResourceGroupName $rgName - Name $storageAccountName )[0 ].Value
14+
15+ $objectName1 = " filetest1.txt."
16+ $objectName2 = " filetest2.txt"
17+
18+ # Create a file share
19+ New-AzStorageShare $shareName - Context $ctx
20+ $Share = Get-AzStorageShare - Name $shareName - Context $ctx
21+ Assert-AreEqual $Share.Count 1
22+ Assert-AreEqual $Share [0 ].Name $shareName
23+
24+ # upload file
25+ $t = Set-AzStorageFileContent - source $testfile512path - ShareName $shareName - Path $objectName1 - Force - Context $ctx - asjob
26+ $t | wait-job
27+ Assert-AreEqual $t.State " Completed"
28+ Assert-AreEqual $t.Error $null
29+
30+ # upload/remove file/dir with -DisAllowTrailingDot
31+ $dirName1WithTrailingDot = " testdir1.."
32+ $dirName1WithOutTrailingDot = " testdir1"
33+ $objectPathWithoutTrailingDot = " testdir1/filetest1.txt"
34+ New-AzStorageDirectory - ShareName $shareName - Path $dirName1WithTrailingDot - Context $ctx1 - DisAllowTrailingDot
35+ $file11 = Set-AzStorageFileContent - source $testfile512path - ShareName $shareName - Path " $ ( $dirName1WithTrailingDot ) /$ ( $objectName1 ) " - Force - Context $ctx1 - DisAllowTrailingDot
36+ $file = Get-AzStorageFile - ShareName $shareName - Path $objectPathWithoutTrailingDot - Context $ctx1 - DisAllowTrailingDot
37+ Assert-AreEqual $file.Count 1
38+ Assert-AreEqual $file [0 ].ShareFileClient.Path $objectPathWithoutTrailingDot
39+ Remove-AzStorageFile - ShareName $shareName - Path " $ ( $dirName1WithTrailingDot ) /$ ( $objectName1 ) " - Context $ctx1 - DisAllowTrailingDot
40+ Remove-AzStorageDirectory - ShareName $shareName - Path $dirName1WithTrailingDot - Context $ctx1 - DisAllowTrailingDot
41+
42+ # list file
43+ $file = Get-AzStorageFile - ShareName $shareName - Context $ctx
44+ Assert-AreEqual $file.Count 1
45+ Assert-AreEqual $file [0 ].Name $objectName1
46+ Assert-NotNull $file [0 ].ListFileProperties.Properties.ETag
47+
48+ if ($Env: OS -eq " Windows_NT" )
49+ {
50+ Set-AzStorageFileContent - source $testfile512path - ShareName $shareName - Path $objectName1 - PreserveSMBAttribute - Force - Context $ctx
51+ }
52+ else
53+ {
54+ Set-AzStorageFileContent - source $testfile512path - ShareName $shareName - Path $objectName1 - Force - Context $ctx
55+ }
56+ $file = Get-AzStorageFile - ShareName $shareName - Context $ctx
57+ Assert-AreEqual $file.Count 1
58+ Assert-AreEqual $file [0 ].Name $objectName1
59+ Assert-NotNull $file [0 ].ListFileProperties.Properties.ETag
60+ if ($Env: OS -eq " Windows_NT" )
61+ {
62+ $localFileProperties = Get-ItemProperty $testfile512path
63+ Assert-AreEqual $localFileProperties.CreationTime.ToUniversalTime ().Ticks $file [0 ].ListFileProperties.Properties.CreatedOn.ToUniversalTime().Ticks
64+ Assert-AreEqual $localFileProperties.LastWriteTime.ToUniversalTime ().Ticks $file [0 ].ListFileProperties.Properties.LastWrittenOn.ToUniversalTime().Ticks
65+ Assert-AreEqual $localFileProperties.Attributes.ToString () $file [0 ].ListFileProperties.FileAttributes.ToString()
66+ }
67+
68+ Start-AzStorageFileCopy - SrcShareName $shareName - SrcFilePath $objectName1 - DestShareName $shareName - DestFilePath $objectName2 - Force - Context $ctx - DestContext $ctx
69+ Get-AzStorageFileCopyState - ShareName $shareName - FilePath $objectName2 - Context $ctx - WaitForComplete
70+ $file = Get-AzStorageFile - ShareName $shareName - Context $ctx
71+ Assert-AreEqual $file.Count 2
72+ Assert-AreEqual $file [0 ].Name $objectName1
73+ Assert-AreEqual $file [1 ].Name $objectName2
74+
75+ $t = Get-AzStorageFileContent - ShareName $shareName - Path $objectName1 - Destination $localDestFile - Force - Context $ctx - asjob
76+ $t | wait-job
77+ Assert-AreEqual $t.State " Completed"
78+ Assert-AreEqual $t.Error $null
79+ Assert-AreEqual (Get-FileHash - Path $localDestFile - Algorithm MD5).Hash (Get-FileHash - Path $testfile512path - Algorithm MD5).Hash
80+
81+ if ($Env: OS -eq " Windows_NT" )
82+ {
83+ Get-AzStorageFileContent - ShareName $shareName - Path $objectName1 - Destination $localDestFile - PreserveSMBAttribute - Force - Context $ctx1
84+ }
85+ else
86+ {
87+ Get-AzStorageFileContent - ShareName $shareName - Path $objectName1 - Destination $localDestFile - Force - Context $ctx
88+ }
89+ Assert-AreEqual (Get-FileHash - Path $localDestFile - Algorithm MD5).Hash (Get-FileHash - Path $testfile512path - Algorithm MD5).Hash
90+ if ($Env: OS -eq " Windows_NT" )
91+ {
92+ $file = Get-AzStorageFile - ShareName $shareName - Path $objectName1 - Context $ctx1
93+ $localFileProperties = Get-ItemProperty $testfile512path
94+ Assert-AreEqual $localFileProperties.CreationTime.ToUniversalTime ().Ticks $file [0 ].FileProperties.SmbProperties.FileCreatedOn.ToUniversalTime().Ticks
95+ Assert-AreEqual $localFileProperties.LastWriteTime.ToUniversalTime ().Ticks $file [0 ].FileProperties.SmbProperties.FileLastWrittenOn.ToUniversalTime().Ticks
96+ Assert-AreEqual $localFileProperties.Attributes.ToString () $file [0 ].FileProperties.SmbProperties.FileAttributes.ToString()
97+ }
98+
99+ $fileName1 = " new" + $objectName1
100+ $file = Get-AzStorageFile - ShareName $shareName - Path $objectName1 - Context $ctx
101+
102+ $file2 = Rename-AzStorageFile - ShareName $shareName - SourcePath $objectName1 - DestinationPath $fileName1 - Context $ctx
103+ Assert-AreEqual $file2.Name $fileName1
104+ Assert-AreEqual $file.FileProperties.ContentType $file2.FileProperties.ContentType
105+ Assert-AreEqual $file.FileProperties.ContentLength $file2.FileProperties.ContentLength
106+
107+ $file3 = $file2 | Rename-AzStorageFile - DestinationPath $fileName1 - Context $ctx1 - Force
108+ Assert-AreEqual $file3.Name $fileName1
109+ Assert-AreEqual $file2.FileProperties.ContentType $file3.FileProperties.ContentType
110+ Assert-AreEqual $file2.FileProperties.ContentLength $file3.FileProperties.ContentLength
111+
112+ Remove-AzStorageFile - ShareName $shareName - Path $fileName1 - Context $ctx
113+ $file = Get-AzStorageFile - ShareName $shareName - Context $ctx
114+ Assert-AreEqual $file.Count 1
115+ Assert-AreEqual $file [0 ].Name $objectName2
116+
117+ $dirName = " filetestdir"
118+ New-AzStorageDirectory - ShareName $shareName - Path $dirName - Context $ctx
119+ $file = Get-AzStorageShare - Name $shareName - Context $ctx1 | Get-AzStorageFile - ExcludeExtendedInfo
120+ Assert-AreEqual $file.Count 2
121+ Assert-AreEqual $file [0 ].Name $dirName
122+ Assert-AreEqual $file [0 ].GetType().Name " AzureStorageFileDirectory"
123+ Assert-Null $file [0 ].ListFileProperties.Properties.ETag
124+ Assert-AreEqual $file [1 ].Name $objectName2
125+ Assert-AreEqual $file [1 ].GetType().Name " AzureStorageFile"
126+ Assert-Null $file [1 ].ListFileProperties.Properties.ETag
127+
128+ $newDir = " new" + $dirName + " .."
129+ $dir = Get-AzStorageFile - ShareName $shareName - Path $dirName - Context $ctx
130+ $dir2 = Rename-AzStorageDirectory - ShareName $shareName - SourcePath $dirName - DestinationPath $newDir - Context $ctx1
131+ Assert-AreEqual $newDir $dir2.Name
132+ Assert-AreEqual $dir.ListFileProperties.IsDirectory $dir2.ListFileProperties.IsDirectory
133+ Assert-AreEqual $dir.ListFileProperties.FileAttributes $dir2.ListFileProperties.FileAttributes
134+
135+ $newDir2 = " new2" + $dirName
136+ $dir3 = $dir2 | Rename-AzStorageDirectory - DestinationPath $newDir2 - Context $ctx1
137+ Assert-AreEqual $newDir2 $dir3.Name
138+ Assert-AreEqual $dir2.ListFileProperties.IsDirectory $dir3.ListFileProperties.IsDirectory
139+ Assert-AreEqual $dir2.ListFileProperties.FileAttributes $dir3.ListFileProperties.FileAttributes
140+
141+ $dir3 | Remove-AzStorageDirectory
142+ $file = Get-AzStorageFile - ShareName $shareName - Context $ctx
143+ Assert-AreEqual $file.Count 1
144+ Assert-AreEqual $file [0 ].Name $objectName2
145+ Assert-AreEqual $file [0 ].GetType().Name " AzureStorageFile"
146+
147+ # Clean Storage Account
148+ Remove-AzStorageShare - Name $shareName - Force - Context $ctx
149+ }
0 commit comments