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
Descargar
azcopy
mediante este vínculoEjecute este comando para cargar el archivo.
azcopy copy "<path_to_file>" "signed_url"
- 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.