2017-12-15 8 views
1

私はstageproductionの接頭辞を持つs3バケットを持っています。 QAの後、ステージからプロダクションまですべてのオブジェクトをコピーしたいと思います。私は1つのコマンドでこれをどのように行うことができるかを理解しようとしています。私は次のようpowershellを使用して、あるコマンドでs3の「フォルダ」をコピーできますか?

Write-S3Object -BucketName $bucketName -Folder $myfolder -Keyprefix $Keyprefix 

に一度にフォルダをアップロードすることができました

http://docs.aws.amazon.com/powershell/latest/reference/items/Copy-S3Object.html

:私はグーグルで

は、単一のオブジェクトのみをコピーするためであるとして、次を起動しますしかし、Copy-S3Objectコマンドでは、プレフィックスと宛先プレフィックスを受け付けないように見えます。

これを行うにはどうすればよいですか?

答えて

1

これはAWSコマンドラインインターフェイスからのみ実行できます。下のスニペットを例としてご覧ください。

$folder = "c:\temp\MyDirectory\" 
$bucket = "AWS BUCKET" 
$folder = "FOLDER PREFIX" 

aws s3 cp $folder s3://$bucket/$version/ --recursive 
0

OK、AWS CLIは多くの状況で良い解決策に見えますが、実際はここでPowershellを使用するように制限されています。ここで

は私のソリューションです:

$objects = Get-S3Object -BucketName $bucketName -KeyPrefix $stageKeyPrefix 

foreach($object in $objects) { 
    $prodKey = $object.Key -replace $stageKeyPrefix, $prodKeyPrefix 
    Copy-S3Object -BucketName $bucket -Key $object.Key -DestinationKey $prodKey 
} 
関連する問題