次の方法で共有


File Service を使用して Azure Data Manager for Energy でファイルをアップロードするには

この記事では、Microsoft Azure Data Manager for Energy でファイル サービス API を使用して大きなファイル (~5GB) をアップロードするには アップロード プロセスでは、File API から署名付き URL をフェッチした後、署名された URL を使用してファイルを Azure Blob Storage に格納します。

署名付き URL を生成する

Azure Cloud Bash で次の curl コマンドを実行して、Azure Data Manager for Energy リソースの特定のデータ パーティションの署名付き URL をファイル サービスから取得します。

    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'

要求のサンプル

「dp1」 という名前のデータ パーティションを持つ 「medstest」 という名前の Azure Data Manager for Energy リソースについて考えてみましょう

    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'

サンプル応答

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

応答オブジェクトの SignedURL キーを使用して、Azure Blob Storage にファイルをアップロードできます。 File Service と Dataset Service の SignedURL の有効期限は、OSDU のセキュリティ強化により 1 時間です。

サイズが 5 GB 未満のファイルをアップロードする

5 GB 未満のファイル サイズをアップロードするには、PUT BLOB API 呼び出しを直接使用して、ファイルを Azure Blob Storage にアップロードできます

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

アップロードが成功すると、応答で 201 Created 状態コードが取得されます

サイズが 5GB 以上のファイルをアップロードする

サイズ >= 5 GB のファイルをアップロードするには、1 回の PUT BLOB 呼び出しが 5 GB ドキュメント リンクを超えることはできないため、azcopy ユーティリティが必要になります

手順

  1. この リンク を使用して azcopy をダウンロードする

  2. このコマンドを使用してファイルをアップロードする

    azcopy copy "<path_to_file>" "signed_url"
  1. サンプル応答
    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

次のステップ

Azure Data Manager for Energy リソースにデータを取り込むことで、ユーザー体験を始めましょう。