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 ユーティリティが必要になります
手順
この リンク を使用して
azcopy
をダウンロードするこのコマンドを使用してファイルをアップロードする
azcopy copy "<path_to_file>" "signed_url"
- サンプル応答
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 リソースにデータを取り込むことで、ユーザー体験を始めましょう。