Cara mengunggah file di Azure Data Manager for Energy menggunakan layanan File

Dalam artikel ini, Anda tahu cara mengunggah file besar (~5GB) menggunakan API layanan File di Microsoft Azure Data Manager for Energy. Proses pengunggahan melibatkan pengambilan URL yang ditandatangani dari File API lalu menggunakan URL yang ditandatangani untuk menyimpan file ke Azure Blob Storage

Membuat URL yang ditandatangani

Jalankan perintah curl di bawah ini di Azure Cloud Bash untuk mendapatkan URL yang ditandatangani dari layanan file untuk partisi data tertentu dari sumber daya Azure Data Manager for Energy Anda.

    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'

Permintaan sampel

Pertimbangkan Azure Data Manager untuk sumber daya Energi bernama "medstest" dengan partisi data bernama "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'

Respon sampel

{
    "FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
    "Location": {
        "SignedURL": "https://dummy.bloburl.com",
        "FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
    }
}

Kunci SignedURL dalam objek respons kemudian dapat digunakan untuk mengunggah file ke Azure Blob Storage

Unggah file dengan ukuran kurang dari 5 GB

Untuk mengunggah ukuran file kurang dari 5 GB, seseorang dapat langsung menggunakan panggilan API blob PUT untuk mengunggah file mereka ke Azure Blob Storage

Sampel Permintaan Curl

    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>'

Jika unggahan berhasil, kami mendapatkan kode status sebagai 201 Created respons

Unggah file dengan ukuran lebih besar atau sama dengan 5 GB

Untuk mengunggah file dengan ukuran >= 5 GB, kita memerlukan utilitas azcopykarena satu panggilan blob PUT tidak boleh lebih besar dari tautan dokumen 5 GB

Langkah-langkah

  1. Unduh azcopy menggunakan tautan ini

  2. Jalankan perintah ini untuk mengunggah file Anda

    azcopy copy "<path_to_file>" "signed_url"
  1. Respon sampel
    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

Langkah berikutnya

Mulai perjalanan Anda dengan menyerap data ke sumber daya Azure Data Manager for Energy Anda.