Hochladen von Dateien im Azure Data Manager für Energie mithilfe des Dateidiensts

In diesem Artikel wissen Sie, wie Sie große Dateien (~5 GB) mithilfe der Dateidienst-API in Microsoft Azure Data Manager for Energy hochladen. Der Uploadvorgang umfasst das Abrufen einer signierten URL aus der Datei-API und anschließend die 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'

Beispiel für eine Anforderung

Betrachten Sie einen Azure Data Manager für Energieressource 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'

Beispielantwort

{
    "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.

Hochladen von Dateien mit einer Größe von weniger als 5 GB

Um Dateigrößen von weniger als 5 GB hochzuladen, kann man den PUT-BLOB-API-Aufruf direkt verwenden, um ihre 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 wir als Antwort einen 201 Created Statuscode.

Hochladen von Dateien mit einer Größe größer oder gleich 5 GB

Um Dateien mit Größen >= 5 GB hochzuladen, benötigen wir azcopy-Hilfsprogrammals einzelner PUT-BLOB-Aufruf kann nicht größer als 5 GB Dokumentverbindung sein.

Schritte

  1. Mit diesem Link herunterladen azcopy

  2. Führen Sie diesen Befehl aus, um Ihre Datei hochzuladen.

    azcopy copy "<path_to_file>" "signed_url"
  1. 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 Ihre Reise, indem Sie Daten in Ihren Azure Data Manager für Energieressourcen aufnehmen.