Jak przekazywać pliki w usłudze Azure Data Manager for Energy przy użyciu usługi Plików
W tym artykule wiesz, jak przekazywać duże pliki (~5 GB) przy użyciu interfejsu API usługi plików w usłudze Microsoft Azure Data Manager for Energy. Proces przekazywania obejmuje pobranie podpisanego adresu URL z interfejsu API plików, a następnie zapisanie pliku w usłudze Azure Blob Storage przy użyciu podpisanego adresu URL
Generowanie podpisanego adresu URL
Uruchom poniższe polecenie curl w usłudze Azure Cloud Bash, aby uzyskać podpisany adres URL z usługi plików dla danej partycji danych zasobu usługi Azure Data Manager for Energy.
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'
Przykładowe żądanie
Rozważ użycie usługi Azure Data Manager dla zasobu energetycznego o nazwie "medstest" z partycją danych o nazwie "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'
Przykładowa odpowiedź
{
"FileID": "2c5e7ac738a64eaeb7c0bc8bd47f90b6",
"Location": {
"SignedURL": "https://dummy.bloburl.com",
"FileSource": "/osdu-user/1686647303778-2023-06-13-09-08-23-778/2c5e7ac738a64eaeb7c0bc8bd47f90b6"
}
}
Klucz SignedURL w obiekcie odpowiedzi może następnie służyć do przekazywania plików do usługi Azure Blob Storage. Czas wygaśnięcia biblioteki SignedURL dla usługi plików i zestawu danych wynosi 1 godzinę zgodnie z ulepszeniami zabezpieczeń z OSDU.
Przekazywanie plików o rozmiarze mniejszym niż 5 GB
Aby przekazać rozmiary plików mniejsze niż 5 GB, można bezpośrednio użyć wywołania interfejsu API obiektów blob PUT w celu przekazania plików do usługi Azure Blob Storage
Przykładowe żądanie 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>'
Jeśli przekazywanie zakończy się pomyślnie, otrzymamy 201 Created
kod stanu w odpowiedzi
Przekazywanie plików o rozmiarze większym lub równym 5 GB
Aby przekazać pliki o rozmiarach = 5 GB, potrzebujemy >narzędzia azcopy, ponieważ pojedyncze wywołanie obiektu blob PUT nie może być większe niż 5 GB łącza doc
Kroki
Pobierz
azcopy
przy użyciu tego linkuUruchom to polecenie, aby przekazać plik
azcopy copy "<path_to_file>" "signed_url"
- Przykładowa odpowiedź
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
Następne kroki
Rozpocznij swoją podróż, pozyskiwając dane do zasobu usługi Azure Data Manager for Energy.