Aracılığıyla paylaş


Dosya hizmetini kullanarak Enerji için Azure Data Manager'da dosyaları karşıya yükleme

Bu makalede, Microsoft Azure Data Manager for Energy'de Dosya hizmeti API'sini kullanarak büyük dosyaları (~5 GB) karşıya yüklemeyi biliyorsunuz. Karşıya yükleme işlemi, Dosya API'sinden imzalı bir URL'yi getirmeyi ve ardından imzalı URL'yi kullanarak dosyayı Azure Blob Depolama

İmzalı URL oluşturma

Azure Cloud Bash'te aşağıdaki curl komutunu çalıştırarak Enerji için Azure Data Manager kaynağınızın belirli bir veri bölümü için dosya hizmetinden imzalı bir URL alın.

    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'

Örnek isteği

"dp1" adlı bir veri bölümüyle "medstest" adlı bir Enerji için Azure Data Manager kaynağını düşünün

    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'

Örnek yanıt

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

Yanıt nesnesindeki SignedURL anahtarı daha sonra dosyaları Azure Blob Depolama yüklemek için kullanılabilir. Dosya hizmeti ve Veri Kümesi hizmeti için SignedURL hizmetinin bitiş süresi, OSDU'nun güvenlik geliştirmelerine göre 1 saattir.

Boyutu 5 GB'tan küçük dosyaları karşıya yükleme

5 GB'tan küçük dosya boyutlarını karşıya yüklemek için put blob API çağrısını kullanarak dosyalarını doğrudan Azure Blob Depolama

Örnek Curl İsteği

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

Karşıya yükleme başarılı olursa yanıt olarak bir 201 Created durum kodu alacağız

Boyutu 5 GB'a eşit veya daha büyük olan dosyaları karşıya yükleme

Boyutları >= 5 GB olan dosyaları karşıya yüklemek için azcopyyardımcı programı gerekir çünkü tek bir PUT blob çağrısı 5 GB'tan büyük belge bağlantısı olamaz

Adımlar

  1. Bu bağlantıyı kullanarak indirin azcopy

  2. Dosyanızı karşıya yüklemek için bu komutu çalıştırın

    azcopy copy "<path_to_file>" "signed_url"
  1. Örnek yanıt
    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

Sonraki adımlar

Enerji için Azure Data Manager kaynağınıza veri alarak yolculuğunuza başlayın.