Отправка файлов в Azure Data Manager для энергетики с помощью файловой службы
В этой статье вы узнаете, как отправлять большие файлы (~5 ГБ) с помощью API службы файлов в Microsoft Azure Data Manager для энергетики. Процесс отправки включает получение подписанного URL-адреса из API файлов, а затем использование подписанного URL-адреса для хранения файла в Хранилище BLOB-объектов Azure
Создание подписанного URL-адреса
Выполните приведенную ниже команду curl в Azure Cloud Bash, чтобы получить подписанный URL-адрес из файловой службы для заданной секции данных ресурса Azure Data Manager для энергетики.
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'
Образец запроса
Рассмотрим ресурс Azure Data Manager для энергетики с именем medstest с разделом данных с именем 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'
Пример ответа
{
"FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
"Location": {
"SignedURL": "https://dummy.bloburl.com",
"FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
}
}
Затем ключ SignedURL в объекте ответа можно использовать для отправки файлов в Хранилище BLOB-объектов Azure. Срок действия подписанного КОДА для файловой службы и службы набора данных составляет 1 час в отношении улучшений безопасности OSDU.
Отправка файлов размером менее 5 ГБ
Чтобы отправить файлы размером менее 5 ГБ, можно напрямую использовать вызов API BLOB-объектов PUT для отправки файлов в Хранилище BLOB-объектов Azure
Пример запроса 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
код состояния в ответ
Отправка файлов с размером больше или равно 5 ГБ
Чтобы отправить файлы с размером >= 5 ГБ, нам потребуется служебная программа azcopy, так как один вызов BLOB-объекта PUT не может быть больше 5 ГБ doc link
Шаги
Скачивание
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 для энергетики.