AWS S3に対して PowershellのCmdletを利用してダウンロードやアップロードなどの操作を行うための方法を備忘録として残しておきます。
本記事では、下記についてまとめておきます。
- AWS S3Bucketの作成
- AWS S3へのファイルアップロード
- AWS S3のBucketおよびKey情報の取得
- AWS S3からのファイルダウンロード
- AWS S3からファイルを削除する
\自身のスキルを向上するには技術書で!!/
月額¥980で技術書が読み放題!!
- ビジネススキルとマインド向上したい!!
- 決断や行動を先送りにしてしまう方!!
実行環境
項目 | バージョン |
---|---|
PS Version | 5.1.18362.752 |
OS | Windows 10 1909 Pro 64bit |
.Net Framework | 4.7.2 |
AWS Tool Version | aws-cli/2.0.44 |
共通引数
AWS S3用のコマンドレットに対して、共通で利用できるパラメータについては下記の通りです。(基本的によく使うもののみを抜粋)
AWS Tools for PowerShell – Amazon Simple Storage Service (S3)
-AccessKey | アクセスキー |
-ProfileName | プロファイル名 |
-Region | リージョン |
-SecretKey | シークレットキー |
-SessionToken | ッショントークン |
S3 Bucketの作成
まずはAWS S3にBucketを作成します。
[Syntax]
New-S3Bucket
-BucketName
-CannedACLName
-PublicReadOnly
-PublicReadWrite
-Force
-Select
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
サンプルコードは下記の通りである
New-S3Bucket -BucketName samplebucket -Region ap-northeast-1
CreationDate BucketName
------------ ----------
2020/09/09 13:12:54 samplebucket
ファイルのアップロード
先ほど作成したBucketにファイルをアップロードします。
アップロードするファイルパスは「C:¥Sample」フォルダ内にあるsample01.txt、sample02.txtとします。
[Syntax]
Write-S3Object
-BucketName
-Key
-File
-CannedACLName
-PublicReadOnly
-PublicReadWrite
-ContentType
-StorageClass
-StandardStorage
-ReducedRedundancyStorage
-ServerSideEncryption
-ServerSideEncryptionKeyManagementServiceKeyId
-ServerSideEncryptionCustomerMethod
-ServerSideEncryptionCustomerProvidedKey
-ServerSideEncryptionCustomerProvidedKeyMD5
-Metadata
-HeaderCollection
-TagSet
-ConcurrentServiceRequest
-Force
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
サンプルコードについては下記の通りである。
Write-S3Object -BucketName samplebucket -KeyPrefix sampleKey -Folder C:¥Sample
アップロードしたファイル情報を確認する
先ほどアップロードしたファイルを確認します。
[Syntax]
Get-S3Object
-BucketName
-Prefix
-Encoding
-RequestPayer
-Delimiter
-Marker
-MaxKey
-Select
-PassThru
-NoAutoIteration
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
サンプルコードについては下記の通りである
Get-S3Object -BucketName samplebucket -KeyPrefix sampleKey
ETag : "ed92477a90933697ae437028efcf9034"
BucketName : samplebucket
Key : sampleKey/sample01.txt
LastModified : 2020/09/03 12:34:05
Owner :
Size : 382
StorageClass : STANDARD
ETag : "39d930f8vk29d6e54be20i3oe8f120do"
BucketName : samplebucket
Key : sampleKey/sample02.txt
LastModified : 2020/09/03 12:34:05
Owner :
Size : 5678
StorageClass : STANDARD
問題なくアップロードができることを確認できました。
ファイルのダウンロード
アップロードしたファイルをダウンロードしてみます。ダウンロードする場合は「Read-S3Object」Cmdletを利用します。
[Syntax]
Read-S3Object
-BucketName
-Key
-File
-Version
-ModifiedSinceDate
-UnmodifiedSinceDate
-UtcModifiedSinceDate
-UtcUnmodifiedSinceDate
-ServerSideEncryptionCustomerMethod
-ServerSideEncryptionCustomerProvidedKey
-ServerSideEncryptionCustomerProvidedKeyMD5
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
サンプルコードについては下記の通りです
Read-S3Object -BucketName samplebucket -KeyPrefix sampleKey -Folder C:¥Sample2
上記を実行した結果、Sample2フォルダに先ほどアップロードしたファイルのダウンロードに成功しました。
ファイルの削除
アップロード済みのファイルをS3から削除します。ファイルの削除については「Remove-S3Bucket」Cmdletを利用して削除します。
[Syntax]
Remove-S3Bucket
-BucketName
-DeleteBucketContent
-Force
-Select
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
削除時のサンプルコードは下記の通りです
Remove-S3Object -BucketName samplebucket -KeyPrefix sampleKey
確認
この操作を実行しますか?
対象 "" に対して操作 "Remove-S3Object (DeleteObjects)" を実行しています。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"):
DeleteMarker VersionId RequestCharged
------------ --------- --------------
問題なく削除ができました。
最後に
S3コンテナの基本的なCmdletについてまとめました。
default以外のプロファイルを利用する場合は「-ProfileName [profile名]」を指定し、リージョンを個別に指定することも可能です。
AWS S3の利用が多くなっていきている中、まず基本的なCmdletは抑えておきたいですね。
次回は、AWS .NETでの操作についてまとめたいと思います。