Come caricare file in Azure Data Manager per l'energia usando il servizio file
In questo articolo si sa come caricare file di grandi dimensioni (~5 GB) usando l'API del servizio file in Microsoft Azure Data Manager for Energy. Il processo di caricamento comporta il recupero di un URL firmato dall'API File e quindi l'uso dell'URL firmato per archiviare il file in Archiviazione BLOB di Azure
Generare un URL firmato
Eseguire il comando curl seguente in Azure Cloud Bash per ottenere un URL firmato dal servizio file per una determinata partizione di dati della risorsa 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'
Esempio di richiesta
Si consideri una risorsa di Azure Data Manager per l'energia denominata "medstest" con una partizione di dati denominata "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'
Risposta di esempio
{
"FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
"Location": {
"SignedURL": "https://dummy.bloburl.com",
"FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
}
}
La chiave SignedURL nell'oggetto risposta può quindi essere usata per caricare i file in Archiviazione BLOB di Azure. L'ora di scadenza del servizio SignedURL per il servizio file e del set di dati è di 1 ora in base ai miglioramenti della sicurezza di OSDU.
Caricare file con dimensioni inferiori a 5 GB
Per caricare dimensioni di file inferiori a 5 GB, è possibile usare direttamente la chiamata ALL'API BLOB PUT per caricare i file in Archiviazione BLOB di Azure
Richiesta Curl di esempio
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 il caricamento ha esito positivo, viene visualizzato un 201 Created
codice di stato in risposta
Caricare file con dimensioni maggiori o uguali a 5 GB
Per caricare file con dimensioni >= 5 GB, è necessaria l'utilità azcopycome singola chiamata BLOB PUT non può essere maggiore di 5 GB di collegamento alla documentazione
Passaggi
Scaricare
azcopy
con questo collegamentoEseguire questo comando per caricare il file
azcopy copy "<path_to_file>" "signed_url"
- Risposta di esempio
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
Passaggi successivi
Iniziare il percorso inserendo i dati in Azure Data Manager per la risorsa Energia.