Share via


Carga de archivos en Azure Data Manager for Energy mediante el servicio File

En este artículo, sabrá cómo cargar archivos grandes (~5 GB) mediante la API de servicio de archivos en Microsoft Azure Data Manager for Energy. El proceso de carga implica capturar una dirección URL firmada de File API y, a continuación, usar la dirección URL firmada para almacenar el archivo en Azure Blob Storage.

Generación de una dirección URL firmada

Ejecute el siguiente comando curl en Azure Cloud Bash para obtener una dirección URL firmada del servicio de archivos para una partición de datos determinada del recurso de Azure Data Manager for Energy.

    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'

Solicitud de ejemplo

Considere la posibilidad de usar un recurso de Azure Data Manager for Energy denominado "medstest" con una partición de datos denominada "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'

Respuesta de muestra

{
    "FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
    "Location": {
        "SignedURL": "https://dummy.bloburl.com",
        "FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
    }
}

La clave SignedURL del objeto de respuesta se puede usar para cargar archivos en Azure Blob Storage.

Carga de archivos con un tamaño inferior a 5 GB

Para cargar tamaños de archivo inferiores a 5 GB, puede usar directamente la llamada a la API put blob para cargar sus archivos en Azure Blob Storage.

Solicitud curl de ejemplo

    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>'

Si la carga se realiza correctamente, obtenemos un 201 Created código de estado en respuesta.

Carga de archivos con un tamaño mayor o igual a 5 GB

Para cargar archivos con tamaños >= 5 GB, necesitaríamos una utilidad azcopycomo una sola llamada a blob PUT no puede ser superior a 5 GB de vínculo de documento.

Pasos

  1. Descargar azcopy mediante este vínculo

  2. Ejecute este comando para cargar el archivo.

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

Pasos siguientes

Comience el recorrido mediante la ingesta de datos en el recurso de Azure Data Manager for Energy.