Como carregar arquivos no Gerenciador de Dados de Energia do Microsoft Azure usando o serviço de Arquivo
Neste artigo você saberá como carregar arquivos grandes (~5GB) usando a API do serviço de Arquivo no Gerenciador de Dados de Energia do Microsoft Azure. O processo de upload envolve a busca de uma URL assinada de API de Arquivo e, em seguida, o uso da URL assinada para armazenar o arquivo no Armazenamento de Blobs do Azure
Gerar uma URL assinada
Execute o comando curl abaixo no Azure Cloud Bash para obter uma URL assinada do serviço de arquivo para uma determinada partição de dados do recurso do Gerenciador de Dados de Energia do Microsoft Azure.
curl --location 'https://<URI>/api/file/v2/files/uploadURL' \
--header 'data-partition-id: <data-partition-id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: text/plain'
Solicitação de exemplo
Considere um recurso do Gerenciador de Dados de Energia do Microsoft Azure chamado "medstest" com uma partição de dados chamada "dp1"
curl --location --request POST 'https://medstest.energy.azure.com/api/file/v2/files/uploadURL' \
--header 'data-partition-id: medstest-dp1' \
--header 'Authorization: Bearer eyxxxxxxx.........................' \
--header 'Content-Type: text/plain'
Resposta de exemplo
{
"FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
"Location": {
"SignedURL": "https://dummy.bloburl.com",
"FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
}
}
A chave SignedURL no objeto de resposta pode ser usada para carregar arquivos no Armazenamento de Blobs do Azure. O tempo de expiração da SignedURL para o serviço de Arquivo e o serviço de Conjunto de dados é de 1 hora, de acordo com os aprimoramentos de segurança do OSDU.
Carregar arquivos com tamanho inferior a 5 GB
Para carregar tamanhos de arquivo inferiores a 5 GB, é possível usar diretamente a chamada à API de blob PUT para carregar seus arquivos no Armazenamento de Blobs do Azure
Solicitação HTTP do Curl
curl --location --request PUT '<SIGNED_URL>' \
--header 'x-ms-blob-type: BlockBlob' \
--header 'Content-Type: <file_type>' \ # for instance application/zip or application/csv or application/json depending on file type
--data '@/<path_to_file>'
Se o upload for bem-sucedido, obteremos um código de status 201 Created
em resposta
Carregar arquivos com tamanho maior ou igual a 5 GB
Para carregar arquivos com tamanhos >= 5 GB, precisamos do programa utilitário AzCopy, pois uma única chamada de blob PUT não pode ser maior que link do documento de 5 GB
Etapas
Baixe
azcopy
usando este linkExecute este comando para carregar seu arquivo
azcopy copy "<path_to_file>" "signed_url"
- Resposta de exemplo
INFO: Could not read destination length. If the destination is write-only, use --check-length=false on the command line.
100.0 %, 1 Done, 0 Failed, 0 Pending, 0 Skipped, 1 Total
Job 624c59e8-9d5c-894a-582f-ef9d3fb3091d summary
Elapsed Time (Minutes): 0.1002
Number of File Transfers: 1
Number of Folder Property Transfers: 0
Number of Symlink Transfers: 0
Total Number of Transfers: 1
Number of File Transfers Completed: 1
Number of Folder Transfers Completed: 0
Number of File Transfers Failed: 0
Number of Folder Transfers Failed: 0
Number of File Transfers Skipped: 0
Number of Folder Transfers Skipped: 0
TotalBytesTransferred: 1367301
Final Job Status: Completed
Próximas etapas
Comece seu percurso ingerindo dados em seu recurso do Gerenciador de Dados de Energia do Microsoft Azure.