Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
AzCopy é um utilitário de linha de comando que você pode usar para copiar blobs ou arquivos de ou para uma conta de armazenamento. Este artigo ajuda você a copiar objetos, diretórios e buckets do Google Cloud Storage para o Armazenamento de Blobs do Azure usando o AzCopy.
Escolha como você fornecerá credenciais de autorização
Para autorizar no Azure Storage, use o ID do Microsoft Entra ou um token de Assinatura de Acesso Compartilhado (SAS).
Para autorizar com o Google Cloud Storage, use uma chave de conta de serviço.
Autorizar com Armazenamento Azure
Confira o artigo Introdução ao AzCopy para baixar o AzCopy e aprender sobre as maneiras em que você pode fornecer credenciais de autorização para o serviço de armazenamento.
Observação
Os exemplos neste artigo pressupõem que você forneça credenciais de autorização usando a ID do Microsoft Entra.
Se você preferir usar um token SAS para autorizar o acesso aos dados de blob, poderá acrescentar esse token à URL do recurso em cada comando do AzCopy. Por exemplo: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.
Autorizar com o Google Cloud Storage
Para autorizar com o Google Cloud Storage, use uma chave de conta de serviço. Para obter informações sobre como criar uma chave de conta de serviço, consulte Criando e gerenciando chaves de conta de serviço.
Depois de obter uma chave de serviço, defina a variável de GOOGLE_APPLICATION_CREDENTIALS ambiente como o caminho absoluto para o arquivo de chave da conta de serviço:
| Sistema Operacional | Command |
|---|---|
| Windows | set GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| Linux | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| macOS | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
Copiar objetos, diretórios e buckets
O AzCopy usa a API put block from URL , de modo que os dados são copiados diretamente entre o Google Cloud Storage e os servidores de armazenamento. Essas operações de cópia não usam a largura de banda de rede do computador.
Dica
Os exemplos nesta seção incluem argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto pelo shell de comando do Windows (cmd.exe). Se você estiver usando um shell de comando do Windows (cmd.exe), coloque os argumentos de caminho entre aspas duplas ("") em vez de aspas simples ('').
Esses exemplos também funcionam com contas que têm um namespace hierárquico.
O acesso a vários protocolos no Data Lake Storage permite que você use a mesma sintaxe de URL (blob.core.windows.net) nessas contas.
Copiar um objeto
Use a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um namespace hierárquico.
Sintaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Exemplo
azcopy copy 'https://storage.cloud.google.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Copiar um diretório
Use a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um namespace hierárquico.
Sintaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Exemplo
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Observação
Este exemplo acrescenta o --recursive sinalizador para copiar arquivos em todos os subdiretórios.
Copiar o conteúdo de um diretório
Você pode copiar o conteúdo de um diretório sem copiar o próprio diretório que contém usando o símbolo curinga (*).
Sintaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Exemplo
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Copiar um bucket do Armazenamento em Nuvem
Use a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um namespace hierárquico.
Sintaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemplo
azcopy copy 'https://storage.cloud.google.com/mybucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copiar todos os buckets em um projeto do Google Cloud
Primeiro, defina a GOOGLE_CLOUD_PROJECT como a ID do projeto do Google Cloud.
Use a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um namespace hierárquico.
Sintaxe
azcopy copy 'https://storage.cloud.google.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemplo
azcopy copy 'https://storage.cloud.google.com/' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copiar um subconjunto de buckets em um projeto do Google Cloud
Primeiro, defina o GOOGLE_CLOUD_PROJECT com a ID do projeto do Google Cloud.
Copie um subconjunto de buckets usando um símbolo curinga (*) no nome do bucket. Use a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um namespace hierárquico.
Sintaxe
azcopy copy 'https://storage.cloud.google.com/<bucket*name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemplo
azcopy copy 'https://storage.cloud.google.com/my*bucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Lidar com diferenças nas regras de nomenclatura do bucket
O Google Cloud Storage tem um conjunto diferente de convenções de nomenclatura para nomes de bucket em comparação com contêineres de blob do Azure. Você pode ler sobre eles aqui. Se você optar por copiar um grupo de buckets para uma conta de armazenamento do Azure, a operação de cópia poderá falhar devido a diferenças de nomenclatura.
O AzCopy resolve três dos problemas mais comuns que podem surgir: buckets que contêm pontos e buckets que contêm hifens consecutivos e buckets que contêm sublinhados. Os nomes de bucket do Google Cloud Storage podem conter pontos e hifens consecutivos, mas um contêiner no Azure não pode. O AzCopy substitui os pontos por hifens e os hifens consecutivos por um número que representa o número de hifens consecutivos (por exemplo, um bucket chamado my----bucket se torna my-4-bucket). Se o nome do bucket tiver um sublinhado (_), AzCopy substituirá o sublinhado por um hífen. Por exemplo, um bucket chamado my_bucket se torna my-bucket.
Lidar com diferenças nas regras de nomenclatura de objeto
O Google Cloud Storage tem um conjunto diferente de convenções de nomenclatura para nomes de objetos em comparação com blobs do Azure. Você pode ler sobre eles aqui.
O Armazenamento do Azure não permite que nomes de objeto (ou qualquer segmento no caminho do diretório virtual) terminem com pontos à direita (por exemplo my-bucket...). Os pontos à direita são cortados quando a operação de cópia é executada.
Lidar com diferenças nos metadados de objeto
O Google Cloud Storage e o Azure permitem diferentes conjuntos de caracteres nos nomes das chaves de objeto. Você pode ler sobre metadados no Google Cloud Storage aqui. No lado do Azure, as chaves de objeto de blob aderem às regras de nomenclatura para identificadores C#.
Como parte de um comando do AzCopy copy , você pode fornecer um valor para o sinalizador opcional s2s-handle-invalid-metadata que especifica como você deseja lidar com arquivos em que os metadados do arquivo contêm nomes de chave incompatíveis. A tabela a seguir descreve cada valor de sinalizador.
| Valor de sinalizador | Description |
|---|---|
| ExcludeIfInvalid | (Opção padrão) Os metadados não estão incluídos no objeto transferido. O AzCopy registra um aviso. |
| FailIfInvalid | Os objetos não são copiados. O AzCopy registra um erro e inclui esse erro na contagem de falhas que aparece no resumo da transferência. |
| RenameIfInvalid | O AzCopy resolve a chave de metadados inválida e copia o objeto para o Azure usando o par de valor de chave de metadados resolvido. Para saber exatamente quais etapas o AzCopy executa para renomear chaves de objeto, consulte a seção Como o AzCopy renomeia as chaves de objeto . Se o AzCopy não puder renomear a chave, o objeto não será copiado. |
Como o AzCopy renomeia as chaves de objeto
O AzCopy executa estas etapas:
Substitui caracteres inválidos por '_'.
Adiciona a cadeia de caracteres
rename_ao início de uma nova chave válida.Essa chave será usada para salvar o valor de metadados original.
Adiciona a cadeia de caracteres
rename_key_ao início de uma nova chave válida. Essa chave será usada para salvar a chave inválida original dos metadados. Você pode usar essa chave para tentar recuperar os metadados no lado do Azure, pois a chave de metadados é preservada como um valor no serviço de Armazenamento de Blobs.
Especificar tipos de origem e destino
O AzCopy usa o parâmetro --from-to para definir explicitamente os tipos de recursos de origem e de destino quando a detecção automática pode falhar, como nos cenários de tubulação ou emuladores. Isso ajuda o AzCopy a entender o contexto da transferência e otimizar adequadamente. Você pode definir esse parâmetro para GCPBlobindicar explicitamente que o comando está copiando do Google Cloud Storage para o Armazenamento de Blobs do Azure.
Próximas etapas
Encontre mais exemplos nestes artigos:
- Exemplos: Carregar
- Exemplos: Baixar
- Exemplos: copiar entre contas
- Exemplos: Sincronizar
- Exemplos: compartimentos do Amazon S3
- Exemplos: Arquivos do Azure
Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: