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