diff --git a/modules/AWSPowerShell/Cmdlets/S3/Advanced/Read-S3Object-Cmdlet.cs b/modules/AWSPowerShell/Cmdlets/S3/Advanced/Read-S3Object-Cmdlet.cs index 812195bc3..7f05c823b 100644 --- a/modules/AWSPowerShell/Cmdlets/S3/Advanced/Read-S3Object-Cmdlet.cs +++ b/modules/AWSPowerShell/Cmdlets/S3/Advanced/Read-S3Object-Cmdlet.cs @@ -135,6 +135,7 @@ public class ReadS3ObjectCmdlet : AmazonS3ClientCmdlet, IExecutor /// /// If specified, the specific version of the S3 object is returned. /// + [Alias("VersionId")] [Parameter(Position = 3, ParameterSetName = ParamSet_ToLocalFile, ValueFromPipelineByPropertyName = true)] public System.String Version { get; set; } #endregion diff --git a/tests/S3/S3.Tests.ps1 b/tests/S3/S3.Tests.ps1 index 067ef91e1..a2c263088 100644 --- a/tests/S3/S3.Tests.ps1 +++ b/tests/S3/S3.Tests.ps1 @@ -73,7 +73,8 @@ Describe -Tag "Smoke" "S3" { BeforeAll { $script:bucketName = "pstest-" + [DateTime]::Now.ToFileTime() New-S3Bucket -BucketName $script:bucketName - + + $key = "versionTest" $void = New-Item -Path temp\bar -Type directory -Force $void = New-Item -Path temp\bar\baz -Type directory -Force @@ -85,6 +86,13 @@ Describe -Tag "Smoke" "S3" { Write-S3Object -BucketName $script:bucketName -KeyPrefix bar2\ -Folder .\temp\bar -Recurse Write-S3Object -BucketName $script:bucketName -Key bar2\foo.txt -Content "foo" Write-S3Object -BucketName $script:bucketName -Key basic.txt -File "temp\basic.txt" + + Write-S3BucketVersioning -BucketName $script:bucketName -VersioningConfig_Status Enabled + + Write-S3Object -BucketName $script:bucketName -Key $key -Content "Version 1" + Write-S3Object -BucketName $script:bucketName -Key $key -Content "Version 2" + + $s3ObjectVersions = Get-S3Version -BucketName $script:bucketName -Prefix $key } AfterAll { @@ -129,6 +137,18 @@ Describe -Tag "Smoke" "S3" { Read-S3Object -BucketName $script:bucketName -Key "basic.txt" -File "temp\basic2.txt" (Get-Content "temp\basic2.txt").Length | Should -BeGreaterThan 0 } + + It "Can retrieve a specific version using the VersionId alias" { + $versionId = $s3ObjectVersions.Versions[0].VersionId + Read-S3Object -BucketName $script:bucketName -Key $key -VersionId $versionId -File "temp\version-test.txt" + (Get-Content "temp\version-test.txt") | Should -Be "Version 2" + } + + It "Can retrieve a specific version using the Version parameter" { + $versionId = $s3ObjectVersions.Versions[1].VersionId + Read-S3Object -BucketName $script:bucketName -Key $key -Version $versionId -File "temp\version-test.txt" + (Get-Content "temp\version-test.txt") | Should -Be "Version 1" + } } Context "Copying" {