大量のデータをアップロードとダウンロード

デバイスが大量のデータを収集した場合、データは、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}'

大量のデータをダウンロード

この例の最初の部分に単語が含まれ mydata、 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}'

これにより、 ydaoffsetIS 1 および count IS 3 の単語が返されます。 offsetは指定されたバイト数だけ開始点を前方に移動し、countoffset以降に取得するデータのバイト数を示します。

大量のデータを削除

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"
    }
  ]
}

」に一致する結果は 件です

    」に一致する結果はありません