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