@@ -128,4 +128,53 @@ $Topology = Get-SGWTopologyHealth
128128$Sites = $Topology.children
129129$Site = $Sites[0]
130130Get-SGWReport -Attribute 'S3 Ingest - Rate (XSIR) [MB/s]' -OID $Site.oid
131+ ```
132+
133+ # S3 Operations
134+
135+
136+
137+ ## Creating AWS Signatures
138+
139+ ### Version 4
140+
141+ ``` powershell
142+ $DebugPreference = "Continue"
143+ # Example from http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
144+ New-AwsSignatureV4 -AccessKey "test" -SecretAccessKey "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY" -EndpointUrl "iam.amazonaws.com" -HTTPRequestMethod GET -Uri '/' -Query @{Action="ListUsers";Version="2010-05-08"} -ContentType "application/x-www-form-urlencoded; charset=utf-8" -DateTime "20150830T123600Z" -DateString "20150830" -Service "iam"
145+ $DebugPreference = "SilentlyContinue"
146+ ```powershell
147+
148+ ### Version 2
149+
150+ ```powershell
151+ $DebugPreference = "Continue"
152+ # Examples from https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
153+ $AccessKey = "AKIAIOSFODNN7EXAMPLE"
154+ $SecretAccessKey = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
155+ # Object GET
156+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "johnsmith.s3.amazonaws.com" -HTTPRequestMethod "GET" -DateTime "Tue, 27 Mar 2007 19:36:42 +0000" -Bucket "johnsmith" -Uri "/photos/puppy.jpg"
157+ $Signature -eq "bWq2s1WEIj+Ydj0vQ697zp+IXMU="
158+ # Object GET
159+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "johnsmith.s3.amazonaws.com" -HTTPRequestMethod "PUT" -DateTime "Tue, 27 Mar 2007 21:15:45 +0000" -Bucket "johnsmith" -Uri "/photos/puppy.jpg" -ContentType "image/jpeg"
160+ $Signature -eq "MyyxeRY7whkBe+bq8fHCL/2kKUg="
161+ # List
162+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "johnsmith.s3.amazonaws.com" -HTTPRequestMethod "GET" -DateTime "Tue, 27 Mar 2007 19:42:41 +0000" -Bucket "johnsmith"
163+ $Signature -eq "htDYFYduRNen8P9ZfE/s9SuKy0U="
164+ # Fetch
165+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "johnsmith.s3.amazonaws.com" -HTTPRequestMethod "GET" -DateTime "Tue, 27 Mar 2007 19:44:46 +0000" -Bucket "johnsmith" -QueryString "?acl"
166+ $Signature -eq "c2WLPFtWHVgbEmeEG93a4cG37dM="
167+ # Delete
168+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "s3.amazonaws.com" -HTTPRequestMethod "DELETE" -DateTime "Tue, 27 Mar 2007 21:20:26 +0000" -Bucket "johnsmith" -Uri "/johnsmith/photos/puppy.jpg"
169+ $Signature -eq "$Signature -eq "
170+ # Upload
171+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "static.johnsmith.net" -HTTPRequestMethod "PUT" -DateTime "Tue, 27 Mar 2007 21:06:08 +0000" -Bucket "static.johnsmith.net" -Uri "/db-backup.dat.gz" -ContentType "application/x-download" -ContentMD5 "4gJE4saaMU4BqNR0kLY+lw==" -Headers @{"x-amz-acl"="public-read";"content-type"="application/x-download";"Content-MD5"="4gJE4saaMU4BqNR0kLY+lw==";"X-Amz-Meta-ReviewedBy"="joe@johnsmith.net,jane@johnsmith.net";"X-Amz-Meta-FileChecksum"="0x02661779";"X-Amz-Meta-ChecksumAlgorithm"="crc32";"Content-Disposition"="attachment; filename=database.dat";"Content-Encoding"="gzip";"Content-Length"="5913339"}
172+ $Signature -eq "ilyl83RwaSoYIEdixDQcA4OnAnc="
173+ # List All My Buckets
174+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "s3.amazonaws.com" -HTTPRequestMethod "GET" -DateTime "Wed, 28 Mar 2007 01:29:59 +0000"
175+ $Signature -eq "qGdzdERIC03wnaRNKh6OqZehG9s="
176+ # Unicode Keys
177+ $Signature = New-AwsSignatureV2 -AccessKey $AccessKey -SecretAccessKey $SecretAccessKey -EndpointUrl "s3.amazonaws.com" -HTTPRequestMethod "GET" -DateTime "Wed, 28 Mar 2007 01:49:49 +0000" -Uri "/dictionary/fran%C3%A7ais/pr%c3%a9f%c3%a8re"
178+ $Signature -eq "qGdzdERIC03wnaRNKh6OqZehG9s="
179+ $DebugPreference = "SilentlyContinue"
131180```
0 commit comments