Compartir vía


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

En este artículo, sabrá cómo cargar archivos grandes (~5 GB) mediante la API de servicio de archivo en Microsoft Azure Data Manager for Energy. El proceso de carga implica capturar una dirección URL firmada de la API de archivos 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 archivo 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. La hora de expiración del servicio SignedURL para el servicio de archivo y el servicio de conjunto de datos es de una hora según las mejoras de seguridad del OSDU.

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 de 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, obtendremos un código de estado 201 Created 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 la utilidad azcopy ya que una sola llamada PUT blob no puede ser mayor de 5 GB vínculo del documento

Pasos

  1. Descargue 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.