Como fazer o backup de dados no Google Cloud Storage

Nesta página, mostraremos como fazer o backup de dados de uma máquina local para o Cloud Storage com o Cloud Tools for PowerShell. Ao contrário da maioria dos recursos, o Cloud Tools for PowerShell oferece duas maneiras de acessar os recursos do Google Cloud Storage: os cmdlets e um provedor do PowerShell.

O provedor permite acessar buckets do Storage e objetos como um sistema de arquivos com o uso dos comandos de sistema de arquivos que você já conhece. O provedor, no entanto, tem algumas limitações. Nem todos os nomes de objeto legais são convertidos em caminhos legais para o provedor. Você não pode usar o provedor para gerenciar ACLs. Para essas casos avançados, você pode usar os cmdlets. Consulte a referência de cmdlets do Cloud Tools for PowerShell para saber mais sobre os cmdlets do Cloud Storage.

Como fazer upload de dados

Os dados no Cloud Storage são organizados em buckets. Use o seguinte procedimento para criar um novo bucket:

Cmdlets

Use o cmdlet New-GcsBucket para criar um novo bucket:

$bucket = "my-gcs-bucket"
New-GcsBucket $bucket

Provedor

Buckets são pastas na raiz da unidade gs:\. Criar um novo item nesse nível criará um novo bucket.

cd gs:\
$bucket = "my-gcs-bucket"
mkdir $bucket

Fazer o upload de arquivos para um bucket

Você pode enviar um único arquivo ou um diretório inteiro para seu bucket:

Cmdlets

Use New-GcsObject. Ele exige um bucket de destino e um nome de objeto como parâmetros. A origem do conteúdo do objeto do novo armazenamento depende dos parâmetros usados.

É possível fazer o upload do conteúdo de um arquivo local para o Cloud Storage usando o parâmetro -File e especificando um caminho de arquivo. Como alternativa, é possível passar o conteúdo do objeto como uma string por meio do pipeline do PowerShell ou usar o parâmetro -Value.

É possível fazer o upload de um diretório inteiro do disco local para o Cloud Storage usando o parâmetro -Folder e especificando o caminho da pasta. Se você não quiser que a pasta seja enviada diretamente para a raiz do bucket do Cloud Storage, use -ObjectNamePrefix para especificar um prefixo que será aplicado a todos os objetos enviados.

# Upload the folder LogFiles and its content to the root of the widget bucket.
New-GcsObject -Bucket "widget" -Folder "C:\inetpub\logs\LogFiles"

# Upload the folder LogFiles and its content to directory Test in the widget bucket.
New-GcsObject -Bucket "widget" -Folder "C:\inetpub\logs\LogFiles" -ObjectNamePrefix "Test"

Provedor

Use New-Item. Ele exige um caminho para o item que está sendo criado. Esse caminho pode ser absoluto ou relativo. O conteúdo do novo objeto do Storage pode ser especificado como uma string para o parâmetro -Value ou especificando um caminho de arquivo para o parâmetro -File.

New-Item gs:\my-gcs-bucket\new-object -File $file

O snippet a seguir faz o upload de um diretório inteiro do disco local para o Cloud Storage.

cd $folder
$files = Get-ChildItem -Recurse
$data = @()
foreach ($file in $files) {
      $objectPath = $file | Resolve-Path -Relative
      $data += @{file = $file; objectPath = $objectPath}
}
cd gs:\my-gcs-bucket
foreach($element in $data) {
      Write-Host "`t${$element.objectPath}"
      New-Item $element.objectPath -File $element.file
}

Como pesquisar dados

Você pode pesquisar dados com cmdlets ou com o provedor por meio dos cmdlets de pesquisa de arquivos comuns.

Cmdlets

Para pesquisar nos objetos de um bucket, use Get-GcsObject. Isso pode ser útil quando combinado com o cmdlet Out-GridView para visualizar seus dados:

Get-GcsObject $bucket | Select Name, Size | Out-GridView

Provedor

Você pode usar Get-ChildItem ou um dos aliases: dir, ls ou gci. Você pode usar o parâmetro -Recurse para procurar em todas as pastas lógicas:

cd gs:\my-gcs-bucket
ls -Recurse

Ler dados

Para ler dados por meio do provedor, use o cmdlet Get-Content padrão. Como alternativa, use o cmdlet Read-GcsObject.

Cmdlets

Para ler o conteúdo de um objeto do Cloud Storage, use o cmdlet Read-GcsObject. Por padrão, ele lê o conteúdo do objeto como uma string e o grava no canal do PowerShell. Especifique o parâmetro -OutFile para fazer o download do conteúdo do objeto para o disco local:

Read-GcsObject $bucket "timestamp.txt" | Write-Host
Read-GcsObject $bucket "logo.png" `
    -OutFile "$Env:UserProfile\pictures\logo.png"

Provedor

Para ler o conteúdo de um objeto do Cloud Storage, use o cmdlet Get-Content ou um dos aliases: cat, gc ou type.

cd gs:\my-gcs-bucket
cat my-object-name

Excluir dados

Para excluir dados por meio do provedor, use o cmdlet Remove-Item padrão. Como alternativa, use o cmdlet Remove-GcsObject.

Cmdlets

Para remover dados no Cloud Storage, use o cmdlet Remove-GcsObject:

Get-GcsObject $bucket | Remove-GcsObject

Provedor

Para remover dados no Cloud Storage, use o cmdlet Remove-Item ou um dos aliases del, rm e erase:

cd gs:\my-gcs-bucket
rm my-object-name