0

我正在尝试使用 cmdlet Copy-GcsObject来备份一些文件,但它失败了。

Copy-GcsObject -SourceBucket "my-bucket" -SourceObjectName "Drivers/storage/PFJ82/Drivers/Production/Windows10-x64/iaStorAC.inf/iaStorF.sys" -DestinationObjectName  "Drivers/storage/PFJ82/Drivers/Production/Windows10-x64/iaStorAC.inf/iaStorF.sys" -DestinationBucket "central-backup"

当我尝试将文件对象从区域存储桶复制到多区域存储桶时,它返回以下错误。有没有办法解决?

Copy-GcsObject : Google.Apis.Requests.RequestError
The combination of locationConstraint and storageClass you provided is not supported for your project [400]
Errors [
    Message[The combination of locationConstraint and storageClass you provided is not supported for your project] Location[ - ] Reason[invalid] 
Domain[global]
]
At line:1 char:1
+ Copy-GcsObject -SourceBucket "dr-db-bucket" -SourceObjectName "Driver ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-GcsObject], GoogleApiException
    + FullyQualifiedErrorId : Google.GoogleApiException,Google.PowerShell.CloudStorage.CopyGcsObject

如果我复制到同一区域的另一个区域存储桶,它工作正常。

4

1 回答 1

1

正如您所指出的,您收到的错误来自您的存储桶位于不同的存储类上。如果一个存储桶位于区域存储类上,另一个存储在多区域存储类上,则复制操作会因存储类别不同而失败,这些存储类别基于不同的位置。

当您对两个具有区域存储类的存储桶执行相同的操作时,它会起作用,因为它们具有相同的存储类。

解决方案是遵循@Adam 的建议并运行gsutil cp命令在存储桶之间复制文件。首先,您可以通过以下方式访问 Cloud Storage PowerShell Provider:

cd gs:\

然后使用此命令在存储桶之间复制您的文件,无论存储类如何:

gsutil cp gs://[BUCKET_A/YOUR_FILE] gs://[BUCKET_B]
于 2018-06-07T11:56:15.160 回答