AWS ツール 1.x (1.1.16 だと思いますか?) で機能するスクリプトが、最新の AWS ツール (2.0.3) にアップグレードした後に機能しなくなった理由を理解しようとしています。
スクリプト
Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
$creds = New-AWSCredentials -AccessKey [REDACTED] -SecretKey [REDACTED]
Set-AWSCredentials -Credentials $creds
$a = Get-Content C:\users\killeens\desktop\temp\AmazonKeysToDownload.txt
$startingpath = "G:\TheFiles\"
$a | ForEach-Object {
$keyname = $_
$fullpath = $startingpath + $keyname
write-host "fullpath: "$fullpath
Get-S3Bucket -BucketName OURBUCKETNAME | Get-S3Object -Key $_ | Copy-S3Object -Key $keyname -LocalFile $fullpath
}
問題
1.1.16 では、これで問題なく動作します。
現在、2.0.3 の期限の下で、次のエラーが発生します。
Copy-S3Object : 指定されたバケットは存在しません
これらの詳細は重要かもしれません
- 価値のあることとして、バケット名はすべて大文字です。(「会社のクライアント」)
- これは、1時間ほど前に私のマシンで文字通り機能しました。次に、並行して何かをしたかったので、powershell v4 と最新の AWS Tools をダウンロードしました。この問題は起こり続けました。それ以来、powershell 3 に戻しましたが、問題は残ります。
- テストする古いバージョンの amazon 1.x ツールを見つけることができませんでした
これまでのトラブルシューティング
- 実行するだけ
Get-S3Bucket OURBUCKETNAME
で動作します - スクリプトを実行し、パイプ
Copy-S3Object
コマンドを省略してもスクリプトは機能し、ファイルにインポートしたすべてのオブジェクトが出力されます。 - 確認したところ、インテリセンスによると
BucketName
Copy- コマンドにパラメーターがあるようには見えません。S3Object
指定しようとすると、エラーが発生します。