我创建了这个函数来从我的 S3 存储桶中提取对象。它有效,但由于 -Key 参数,我一次只能处理一个文件。

有没有办法在不编写多个 Copy-S3Object cmdlet 的情况下备份存储桶的全部内容?

function CopyFromS3ToFolder($S3_Bucket, $S3_Folder_Destination, $S3_Key, $S3_SecretKey, $S3_AccessKey, $S3_Region)
{
    #http://docs.aws.amazon.com/powershell/latest/reference/Index.html (Amazon Simple Storage Service)
    #version AWSToolsAndSDKForNet_sdk-2.0.11.0-ps-2.0.11.0-tk-1.6.5.2

    Write-Host "Copying from S3 to Local Directory"
    Write-Host "Folder Name :$S3_Folder_Destination"
    Copy-S3Object -BucketName $S3_Bucket -LocalFile $S3_Folder_Destination -SecretKey $S3_SecretKey -AccessKey $S3_AccessKey -Region $S3_Region -Key $S3_Key
}

最佳答案

您可以使用 Get-S3Object 获取您想要的 key ,然后将其通过管道传输到 Copy-S3Object ,如下所示:

Get-S3Object -bucketname "Bucket1" | %{ Copy-S3Object -Key $_.key -LocalFile "path" }

关于powershell - 如何使用 PowerShell 在本地备份 S3 Bucket 的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25727702/

10-11 14:24