Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AWS Powershell将数据从Amazon S3服务器复制到本地驱动器。_Powershell_Amazon Web Services_Aws Powershell - Fatal编程技术网

使用AWS Powershell将数据从Amazon S3服务器复制到本地驱动器。

使用AWS Powershell将数据从Amazon S3服务器复制到本地驱动器。,powershell,amazon-web-services,aws-powershell,Powershell,Amazon Web Services,Aws Powershell,我正在尝试Get-S3Object-BucketName试点,但它有很多子目录 您可能希望使用,而不是用于实际复制。Get-S3Object返回S3Object元数据的集合。使用Get-S3Object隔离要复制的对象,然后将这些对象的重要信息(密钥)传递到copy-S3Object中 您可以使用KeyPrefix参数将结果向下过滤到特定的子目录。例如: $srcBucketName = "myBucket" $objects = get-s3object -bucketname $srcBuc

我正在尝试Get-S3Object-BucketName试点,但它有很多子目录

您可能希望使用,而不是用于实际复制。Get-S3Object返回S3Object元数据的集合。使用Get-S3Object隔离要复制的对象,然后将这些对象的重要信息(密钥)传递到copy-S3Object中

您可以使用
KeyPrefix
参数将结果向下过滤到特定的子目录。例如:

$srcBucketName = "myBucket"
$objects = get-s3object -bucketname $srcBucketName -KeyPrefix "mySubdirectory"
如果您需要从所有目录复制数据,您可以通过单独调用get-s3object将整个操作分成更小的块,对bucket中的每个目录调用一次

如果单个目录仍然太大,可以使用
MaxKeys
参数进一步分块操作


一旦准备好复制,您可以执行以下操作:

$objects | 
% { copy-s3object -BucketName $srcBucketName -Key $_.Key -LocalFile "somePath" }
…您已在其中定义了本地路径。通过解析字符串中的键,您甚至可以将子目录和键与本地路径相匹配:
“C:/someDir/$($\u0.key)”

  • Get-S3Object文档:
  • 复制对象文档:

我拥有的AWS for Powershell版本不允许为
copy-s3object
使用管道。因此,您可以使用
read-s3object

另外,
get-s3object
没有bucket name参数,这很奇怪

Get-S3Object -BucketName mybucket -Key path/to/files | % { Read-S3Object -BucketName mybucket -Key $_.Key -File $("C:\"+$_.key)}

您想使用Read-S3Object复制到本地作业。Read-S3Object调用Get-S3Object,因此您只需要:

Read-S3Object -BucketName $myS3Bucket-KeyPrefix $myS3SubDirectory -Folder $myLocalFolder

谢谢Hyper A,这真的很有帮助。我在第一次获取返回的对象上没有看到.BucketName。查看文档时,我在Amazon.S3.Model.S3Object上没有看到Bucket属性。@BozoJoe感谢您的帮助,这是绝对正确的。