我可以使用 powershell 在一个命令中复制 s3 中的“文件夹”吗?

Eri*_*son 4 powershell amazon-s3 amazon-web-services

我有一个 s3 存储桶,其前缀为stageproduction。QA 后,我想将所有对象从阶段复制到生产。我试图了解如何用一个命令来做到这一点。

我的谷歌搜索仅显示以下内容,用于复制单个对象:

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

我能够通过以下方式一次性上传一个文件夹

Write-S3Object -BucketName $bucketName -Folder $myfolder -Keyprefix $Keyprefix
Run Code Online (Sandbox Code Playgroud)

Copy-S3Object例如,该命令似乎不接受前缀和目标前缀。

最好的方法是什么?

Eri*_*son 5

好吧,看起来 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
}
Run Code Online (Sandbox Code Playgroud)