Compartilhar via


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

  1. Baixe azcopy usando este link

  2. Execute este comando para carregar seu arquivo

    azcopy copy "<path_to_file>" "signed_url"
  1. 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.