
PowerShellからS3を操作してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
WindowsServerからS3を操作する必要があり、AWS Tools for Windows PowerShellを試してみました。
検証環境
Windows2012R2の日本語AMIを利用しました。 また、EC2インスタンスにIAM Roleを設定しました。 AMI:Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2015.10.26 (ami-6a92ff6a)
AWS Tools for Windows PowerShellのバージョンアップ
バージョン確認
PowerShellを起動して、「Get-AWSPowerShellVersion」コマンドを実行します。 今回利用したAMIにはVersion 3.1.20.0がインストールされていました。
> Get-AWSPowerShellVersion AWS Tools for Windows PowerShell Version 3.1.20.0 Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Amazon Web Services SDK for .NET Version 3.1.3.2 Copyright 2009-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Release notes: https://aws.amazon.com/releasenotes/PowerShell This software includes third party software subject to the following copyrights: - Logging from log4net, Apache License [http://logging.apache.org/log4net/license.html] >
バージョンアップ
http://aws.amazon.com/powershell/ページから、[AWS Tools for Windows]を選択します。 [AWSToolsAndSDKForNet_sdk-3.1.26.1_ps-3.1.26.0_tk-1.9.6.7.msi]がダウンロードされました。
msiファイルをインスタンスに配置し実行します。
デフォルト設定で[Next]を選択していきました。

PowerShellを起動して、「Get-AWSPowerShellVersion」コマンドを実行しましょう。 Version 3.1.26.0になりました。
> Get-AWSPowerShellVersion AWS Tools for Windows PowerShell Version 3.1.26.0 Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Amazon Web Services SDK for .NET Version 3.1.3.5 Copyright 2009-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Release notes: https://aws.amazon.com/releasenotes/PowerShell This software includes third party software subject to the following copyrights: - Logging from log4net, Apache License [http://logging.apache.org/log4net/license.html] >
S3の操作
PowerShellからコマンドを実行します。
リージョンの指定
Tokyoリージョンを指定します。
> Initialize-AWSDefaults -Region ap-northeast-1
Administratorユーザで「Initialize-AWSDefaults」を実行した場合、 C:\Users\Administrator\AppData\Local\AWSToolkit\RegisteredAccounts.jsonが作成されます。 jsonファイルではTokyoリージョンがセットされています。
{
    "*******-****-****-****-*******" : {
        "DisplayName" : "default",
        "CredentialsType" : "Amazon.Runtime.InstanceProfileAWSCredentials",
        "Region"          : "ap-northeast-1"
    }
}
バケットの作成
> New-S3Bucket bukectname CreationDate BucketName ------------ ---------- 2015/11/** **:**:** bukectname >
オブジェクトのアップロード
デスクトップ上のText1.txtをs3://bukectname/folder1/Text1.txtとしてアップロードします。
> Write-S3Object -BucketName bukectname -File .\Desktop\Text1.txt -Key "folder1/Text1.txt"
オブジェクトのダウンロード
> Copy-S3Object -BucketName bukectname -Key folder1/Text1.txt -LocalFile .\Desktop\Text1.txt
オブジェクトの削除
アップロードしたファイルを削除します。
> Remove-S3Object -BucketName bukectname -Key "folder1/Text1.txt"
おわりに
AWS Tools for Windows PowerShellを使ってみました。 他の操作については、コマンドレットリファレンスをご参照ください。
参考
AWS Documentation(Amazon S3 from the AWS Tools for Windows PowerShell) AWS Tools for Windows PowerShell Cmdlet Reference













