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

问题描述 投票:0回答:3

我有一个 s3 存储桶,其前缀为

stage
production
。在质量检查之后,我想将所有对象从阶段复制到生产。我正在尝试了解如何使用一个命令来完成此操作。

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

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

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

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

但是

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

最好的方法是什么?

powershell amazon-web-services amazon-s3
3个回答
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
}

3
投票

相信您只能通过 AWS 命令行界面执行此操作,请参阅下面的代码片段作为示例。

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

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

0
投票

您可以使用以下命令将文件从本地计算机/服务器递归复制到 S3。

Write-S3Object -BucketName <BUCKETNAME> -Folder <LOCALFOLDER> -KeyPrefix <PREFIXINS3> -Recurse

© www.soinside.com 2019 - 2024. All rights reserved.