Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 a copiar objetos, diretórios e buckets do Amazon Web Services (AWS) S3 para o Azure Blob Storage utilizando o AzCopy.
Observação
AzCopy suporta URLs padrão no estilo de hospedagem virtual ou estilo de caminho definidas pela AWS. Por exemplo: https://bucket.s3.amazonaws.com ou https://s3.amazonaws.com/bucket.
Escolha como irá fornecer as credenciais de autorização
Para autorizar com o Azure Storage, utilize o Microsoft Entra ID ou um token de Assinatura de Acesso Compartilhado (SAS).
Para autorizar com o AWS S3, use uma chave de acesso AWS e uma chave de acesso secreta.
Autorizar com Azure Storage
Consulte o artigo Introdução ao AzCopy para baixar o AzCopy e escolha como você fornecerá credenciais de autorização para o serviço de armazenamento.
Observação
Os exemplos neste artigo pressupõem que você autentica sua identidade usando o AzCopy login comando. AzCopy, em seguida, utiliza a sua conta Microsoft Entra para autorizar o acesso aos dados no armazenamento Blob.
Se preferir usar um token SAS para autorizar o acesso aos dados de blob, você pode acrescentar esse token à URL do recurso em cada comando AzCopy.
Por exemplo: https://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>.
Autorizar com AWS S3
Recolha a sua chave de acesso AWS e a chave de acesso secreto e, em seguida, defina estas variáveis de ambiente:
| Sistema Operativo | Comando |
|---|---|
| Windows | PowerShell:$env:AWS_ACCESS_KEY_ID=<access-key>$env:AWS_SECRET_ACCESS_KEY=<secret-access-key> Num prompt de comando, utilize: set AWS_ACCESS_KEY_ID=<access-key>set AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| Linux | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| macOS | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
Estas credenciais são utilizadas para gerar URLs pré-assinadas que são usadas para copiar objetos.
Copiar objetos, diretórios e buckets
AzCopy utiliza a API Put Block From URL, portanto os dados são copiados diretamente entre AWS S3 e os servidores de armazenamento. As operações de cópia não utilizam a largura de banda da rede do seu computador.
Tip
Os exemplos nesta secção colocam os argumentos de caminho entre aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com aspas duplas ("") em vez de aspas simples ('').
Estes exemplos também funcionam com contas que têm um namespace hierárquico.
O acesso multiprotocolo no Data Lake Storage permite-lhe usar a mesma sintaxe de URL (blob.core.windows.net) nessas contas.
Copiar um objeto
Utilize a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um espaço de nomes hierárquico.
Sintaxe
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Exemplo
azcopy copy 'https://s3.amazonaws.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Observação
Exemplos neste artigo utilizam URLs no estilo de caminho para baldes AWS S3 (Por exemplo: http://s3.amazonaws.com/<bucket-name>).
Também pode usar URLs de estilo hospedado virtual (por exemplo: http://bucket.s3.amazonaws.com).
Para saber mais sobre hospedagem virtual de buckets, consulte Hospedagem Virtual de Buckets.
Copiar um diretório
Utilize a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um espaço de nomes hierárquico.
Sintaxe
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Exemplo
azcopy copy 'https://s3.amazonaws.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
Pode copiar o conteúdo de um diretório sem copiar o próprio diretório usando o símbolo curinga (*).
Sintaxe
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Exemplo
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Copiar um balde
Utilize a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um espaço de nomes hierárquico.
Sintaxe
azcopy copy 'https://s3.amazonaws.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive=true
Exemplo
azcopy copy 'https://s3.amazonaws.com/mybucket' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive=true
Copie todos os buckets em todas as regiões
Utilize a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um espaço de nomes hierárquico.
Sintaxe
azcopy copy 'https://s3.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemplo
azcopy copy 'https://s3.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copiar todos os buckets em uma região específica do S3
Utilize a mesma sintaxe de URL (blob.core.windows.net) para contas que têm um espaço de nomes hierárquico.
Sintaxe
azcopy copy 'https://s3-<region-name>.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemplo
azcopy copy 'https://s3-rds.eu-north-1.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Lidar com diferenças nas regras de nomeação de objetos
O AWS S3 usa um conjunto diferente de convenções de nomenclatura para nomes de bucket em comparação com contêineres de blob do Azure. Pode ler sobre eles aqui. Se optar por copiar um grupo de baldes para uma conta de armazenamento Azure, a operação de cópia pode falhar devido a diferenças nos nomes.
O AzCopy lida com dois dos problemas mais comuns que podem surgir: buckets que contêm pontos e buckets que contêm hífenes consecutivos. Nomes de buckets do AWS S3 podem conter pontos e hífens consecutivos, mas um container no Azure não pode. AzCopy substitui pontos com hífenes e hífenes consecutivos por um número que representa o número de hífenes consecutivos (por exemplo, um bucket chamado my----bucket torna-se my-4-bucket).
Além disso, à medida que o AzCopy copia os ficheiros, verifica colisões de nomes e tenta resolvê-las. Por exemplo, se houver buckets com o nome bucket-name e bucket.name, o AzCopy resolve um bucket chamado bucket.name primeiro para bucket-name e depois para bucket-name-2.
Lidar com diferenças nos metadados do objeto
AWS S3 e Azure permitem conjuntos diferentes de caracteres nos nomes das chaves de objeto. Pode ler sobre os caracteres que a AWS S3 utiliza aqui. No lado do Azure, as chaves dos objetos blob cumprem as regras de nomeação para identificadores C#.
Como parte de um comando AzCopy copy , você pode fornecer um valor para o sinalizador opcional s2s-handle-invalid-metadata que especifica como você deseja manipular arquivos em que os metadados do arquivo contêm nomes de chave incompatíveis. A tabela a seguir descreve cada valor de bandeira.
| Valor da bandeira | Descrição |
|---|---|
| ExcludeIfInvalid | (Opção padrão) Os metadados não estão incluídos no objeto transferido. AzCopy registra um aviso. |
| FailIfInvalid | Os objetos não são copiados. AzCopy regista um erro e inclui esse erro na contagem de falhas que aparece no resumo da transferência. |
| RenameIfInvalid | AzCopy resolve a chave de metadados inválida e copia o objeto para o Azure utilizando o par chave-valor de metadados resolvido. Para saber exatamente quais etapas o AzCopy executa para renomear chaves de objeto, consulte a seção Como o AzCopy renomeia chaves de objeto . Se o AzCopy não conseguir renomear a chave, o objeto não será copiado. |
Como o AzCopy renomeia chaves de objetos
AzCopy executa estes passos:
Substitui caracteres inválidos por '_'.
Adiciona a cadeia
rename_ao início de uma nova chave válida.Essa chave é usada para salvar o valor de metadados original.
Adiciona a cadeia
rename_key_ao início de uma nova chave válida. Essa chave é usada para salvar a chave inválida de metadados original. Você pode usar essa chave para tentar recuperar os metadados no lado do Azure, já que a chave de metadados é preservada como um valor no serviço de armazenamento de Blob.
Especificar tipos de origem e destino
AzCopy usa o --from-to parâmetro para definir explicitamente os tipos de recursos de origem e destino quando a deteção automática pode falhar, como em cenários de tubulação ou emuladores. Este parâmetro ajuda o AzCopy a entender o contexto da transferência e otimizar de acordo. Defina esse parâmetro como S3Blob para indicar explicitamente que o comando está copiando do Amazon S3 para o Armazenamento de Blobs do Azure.
Próximos passos
Encontre mais exemplos nestes artigos:
- Exemplos: Upload
- Exemplos: Download
- Exemplos: Copiar entre contas
- Exemplos: Sincronizar
- Exemplos: Google Cloud Storage
- Exemplos: Arquivos do Azure
Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: