Hochladen von Dateien in Azure Data Manager for Energy mithilfe des Dateidiensts
In diesem Artikel wird erläutert, wie Sie große Dateien (ca. 5 GB) mithilfe der Dateidienst-API in Microsoft Azure Data Manager for Energy hochladen. Der Uploadvorgang umfasst das Abrufen einer signierten URL über die Datei-API und die anschließende Verwendung der signierten URL zum Speichern der Datei in Azure Blob Storage.
Generieren einer signierten URL
Führen Sie den folgenden curl-Befehl in Azure Cloud Bash aus, um eine signierte URL vom Dateidienst für eine bestimmte Datenpartition Ihrer Azure Data Manager for Energy-Ressource abzurufen.
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'
Beispielanforderung
Verwenden Sie eine Azure Data Manager for Energy-Ressource namens „medstest“ mit einer Datenpartition namens „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'
Beispiel für eine Antwort
{
"FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
"Location": {
"SignedURL": "https://dummy.bloburl.com",
"FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
}
}
Der SignedURL-Schlüssel im Antwortobjekt kann dann verwendet werden, um Dateien in Azure Blob Storage hochzuladen. Die Ablaufzeit des SignedURL-Schlüssels für den Dateidienst und Datasetdienst beträgt gemäß den Sicherheitsverbesserungen von OSDU eine Stunde.
Hochladen von Dateien mit einer Größe von weniger als 5 GB
Um Dateigrößen von weniger als 5 GB hochzuladen, kann direkt der API-Aufruf „PUT Blob“ verwendet werden, um die Dateien in Azure Blob Storage hochzuladen.
Curl-Beispielanforderung
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>'
Wenn der Upload erfolgreich ist, erhalten Sie den Statuscode 201 Created
in der Antwort.
Hochladen von Dateien, die größer als oder gleich 5 GB sind
Um Dateien mit Größen von >= 5 GB hochzuladen, benötigen Sie das Hilfsprogramm azcopy, da ein einzelner PUT blob-Aufruf nicht größer als 5 GB sein kann (Link zur Dokumentation).
Schritte
Laden Sie
azcopy
mithilfe dieses Links herunter.Führen Sie diesen Befehl aus, um Ihre Datei hochzuladen.
azcopy copy "<path_to_file>" "signed_url"
- Beispiel für eine Antwort
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
Nächste Schritte
Beginnen Sie mit dem Erfassen von Daten in Ihrer Azure Data Manager for Energy-Ressource.