Облачные инструменты Google для PowerShell Copy-GcsObject возвращают ошибку с мультирегиональной корзиной - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь использовать командлет 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

Это прекрасно работает, если я копирую в другое региональное хранилище в том же регионе.

1 Ответ

0 голосов
/ 07 июня 2018

Ошибка, которую вы получаете , происходит из-за того, что ваши корзины находятся в разных классах хранения, как вы указали.Если один сегмент в классе региональных хранилищ, а другой - в классе мультирегиональных хранилищ, операция копирования завершится неудачно из-за разницы в классах хранения , которые основаны на разных расположениях.

Когда вы выполняете одну и ту же операцию с двумя контейнерами, имеющими класс Regional, он работает, потому что у них один и тот же класс.

Решением этой проблемы будет следование совету @ Adam и запусккоманда gsutil cp для копирования ваших файлов между сегментами.Во-первых, вы можете получить доступ к провайдеру PowerShell в облачном хранилище с помощью:

cd gs:\

, а затем использовать эту команду для копирования файлов между сегментами независимо от класса хранения:

gsutil cp gs://[BUCKET_A/YOUR_FILE] gs://[BUCKET_B]
...