はじめに
AWS S3に対して PowershellのCmdletを利用してダウンロードやアップロードなどの操作を行うための方法を備忘録として残しておきます。
本記事では、下記についてまとめておきます。
- AWS S3Bucketの作成
- AWS S3へのファイルアップロード
- AWS S3のBucketおよびKey情報の取得
- AWS S3からのファイルダウンロード
- AWS S3からファイルを削除する
実行環境
項目 | バージョン |
---|---|
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
S3 Bucketの作成
まずはAWS S3にBucketを作成します。
Syntax
New-S3Bucket
-BucketName
-CannedACLName
-PublicReadOnly
-PublicReadWrite
-Force
-Select
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
Sample
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
Sample
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
Sample
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
問題なくアップロードができていることを確認できました。
ファイルダウンロード
アップロードしたファイルをダウンロードしてみます。
Syntax
Read-S3Object
-BucketName
-Key
-File
-Version
-ModifiedSinceDate
-UnmodifiedSinceDate
-UtcModifiedSinceDate
-UtcUnmodifiedSinceDate
-ServerSideEncryptionCustomerMethod
-ServerSideEncryptionCustomerProvidedKey
-ServerSideEncryptionCustomerProvidedKeyMD5
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
Sample
Read-S3Object -BucketName samplebucket -KeyPrefix sampleKey -Folder C:¥Sample2
上記で、Sample2のフォルダに先ほどアップロードしたファイルがダウンロードされました。
ファイルの削除
アップロードしたファイルを削除します。
Syntax
Remove-S3Bucket
-BucketName
-DeleteBucketContent
-Force
-Select
-UseAccelerateEndpoint
-UseDualstackEndpoint
-ForcePathStyleAddressing
Sample
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での操作についてまとめたいと思います。