大量のデータをアップロードとダウンロード
デバイスが大量のデータを収集した場合、データは、Tracking API を介して大量のデータの塊としてトラッキングバックエンドにアップロードできます。 ユーザーは、後でTracking API からアップロードされたデータをダウンロードできます。データのアップロードはデバイスによって行われ、データのダウンロードはユーザーによって行われます。
前提条件
デバイスにログイン
デバイスにログインこれにより、データのアップロードリクエストに必要なdeviceToken
が返されます。
ユーザーにログイン
ユーザーにログインこれにより、ユーザーアクセス トークンuserToken
が返されます。 後続のリクエストに必要です。
大量のデータをアップロード
アップロードプロセスには、新しいアップロードの作成、データの一部のアップロード、すべてのデータ部分のアップロードが完了した後のデータのアップロードの 3 つのフェーズがあります。
新しい大量のデータのアップロードを作成
curl -X POST \
'https://tracking.api.here.com/largedata/v4' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {deviceToken}' \
-d '{
"name":"My large data",
"description":"Description for my large data"
}'
これは、大きいデータの識別子であるdataId
を返します。
{
"dataId": "DATA-dummyDataId"
}
大量のデータのアップロード作成のステータスを確認
プロジェクトの最初の大量のデータのアップロードが作成されたときに、データストレージの設定に時間がかかることがあります。 次のリクエストを行って、大きいデータのメタデータを取得し、アップロードの作成ステータスを確認します。
curl -X GET \
'https://tracking.api.here.com/largedata/v4/{dataId}/metadata' \
-H 'Authorization: Bearer {userToken}'
メタデータには、アップロードのステータス、部分の数、大量のデータ全体のサイズなどの情報が含まれています。
{
"dataId": "DATA-dummyDataId",
"trackingId": "HERE-dummyHereId",
"name": "My large data",
"description": "Description for my large data",
"numberOfParts": 2,
"size": 6,
"status": "completed",
"createdAt": "2021-06-24T08:27:53.933Z",
"completedAt": "2021-06-24T08:29:08.966Z"
}
ステータスが「preparing
」でなくなった場合にのみ 、ユーザーはデータ部分のアップロードを続行できます。 アップロードのデータストレージがまだ作成されている場合は、アップロードのデータ部分のリクエストによって 409 のエラーコードが返されます。
大量のデータの一部をアップロード
次の例では、mylargedata1.bin
というデータファイルがパート 1 としてアップロード され、次にmylargedata2.bin
という別のファイルがパート 2 としてアップロードされます。 これは並行して行うことができます。 ユーザーが以降のリクエストで同じ部品番号を使用すると、新しいアップロードによって古い部品番号が上書きされます。
curl -X PUT \
'https://tracking.api.here.com/largedata/v4/{dataId}/parts/1' \
-H 'Content-Type: application/octet-stream' \
-H 'Authorization: Bearer {deviceToken}' \
--data-binary '@mylargedata1.bin'
curl -X PUT \
'https://tracking.api.here.com/largedata/v4/{dataId}/parts/2' \
-H 'Content-Type: application/octet-stream' \
-H 'Authorization: Bearer {deviceToken}' \
--data-binary '@mylargedata2.bin'
大量のデータのアップロードを完了
ユーザーが大量のデータのすべての部分を正常にアップロードしたら、アップロードを完了する必要があります。 アップロードが完了すると、部分の上書きや、大きなデータの新しい部分のアップロードはできなくなります。
curl -X POST \
'https://tracking.api.here.com/largedata/v4/{dataId}' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {deviceToken}'
大量のデータをダウンロード
この例の最初の部分に単語が含まれ my
data
、 2 番目の部分に単語が含まれているとします。
curl -X GET \
'https://tracking.api.here.com/largedata/v4/{dataId}/data' \
-H 'Accept: application/json, application/octet-stream' \
-H 'Authorization: Bearer {userToken}'
パート 1 my
とパート 2 data
が連結されているため、これは単語mydata
を返します。
curl -X GET \
'https://tracking.api.here.com/largedata/v4/{dataId}/data?offset=1&count=3' \
-H 'Accept: application/json, application/octet-stream' \
-H 'Authorization: Bearer {userToken}'
これにより、 yda
offset
IS 1 および count
IS 3 の単語が返されます。 offset
は指定されたバイト数だけ開始点を前方に移動し、count
は offset
以降に取得するデータのバイト数を示します。
大量のデータを削除
curl -X DELETE \
'https://tracking.api.here.com/largedata/v4/{dataId}' \
-H 'Authorization: Bearer {userToken}'
ユーザーは、各大規模データ部分の詳細情報およびアップロードステータスを取得できます。
curl -X GET \
'https://tracking.api.here.com/largedata/v4/{dataId}/parts' \
-H 'Authorization: Bearer {userToken}'
{
"limit": 100,
"count": 2,
"items": [
{
"partNumber": 1,
"size": 2,
"md5": "6864f389d9876436bc8778ff071d1b6c",
"status": "completed"
},
{
"partNumber": 2,
"size": 4,
"md5": "8d777f385d3dfec8815d20f7496026dc",
"status": "completed"
}
]
}
特定のデバイスのすべての大きいデータオブジェクトについてメタデータを取得するには、要求パスでデバイスtrackingId
を指定する必要があります。
curl -X \
GET 'https://tracking.api.here.com/largedata/v4/devices/{trackingId}/metadata' \
-H 'Authorization: Bearer {userToken}'
{
"limit": 100,
"count": 1,
"items": [
{
"dataId": "DATA-dummyDataId",
"trackingId": "HERE-dummyHereId",
"name": "My large data",
"description": "Description for my large data",
"numberOfParts": 2,
"size": 6,
"status": "completed",
"createdAt": "2021-06-24T08:27:53.933Z",
"completedAt": "2021-06-24T08:29:08.966Z"
}
]
}