ストリーム レイヤーにデータを公開します

現在 blob 、このサービスは REST API バージョン v1 およびをサポート v2しています。 v1 バージョン管理、インデックス作成、およびストリーム(ストリームペイロードが 1MB より大きい場合)の各レイヤーへのアクセスには、バージョンを使用する必要があります。 v2 オブジェクト ストア レイヤーにアクセスするには、バージョンを使用する必要があります。 正しい API バージョンの応答が返されるように、 API 検索から適切な API バージョンを常に選択してください。 手順については 、『 API Lookup 開発者ガイド』を参照してください。

リクエストでアップロードするデータ量に応じて、ストリーム レイヤーにデータを送信する方法は複数あります。

1 つのリクエストに最大 20 MB のデータを公開できます

ストリーム レイヤー にデータを送信しており、各ペイロードが 20 MB 未満の場合 ingest は、 API を使用します。データのストリーム を公開するために使用できるエンドポイントは複数あります。

  • データに依存しないエンドポイント。ペイロードが 1 MB を超えると、 Blob API に自動的にコンテンツをアップロードします。
  • SDII メッセージリスト用に設計されたエンドポイント。
  • パーティション、 ID 、 CRC 、チェックサムなどのメタデータ を含むストリーム メッセージを公開するパーティションエンドポイント などがあります。
  1. HTTP 要求で使用する許可トークンを取得します。 手順について は、『 Identity & Access Management Guide 』を参照してください。
  2. API ルックアップサービスを使用して、公開先のカタログのingestv1 API のベース URL を取得します。 手順については 、『 API Lookup 開発者ガイド』を参照してください。
  3. SDII メッセージのリストをストリーミングする場合は、データに依存しないエンドポイントまたは SDII メッセージリストエンドポイントのいずれかを使用してデータを送信します。

インジェストされたデータのサイズが 1 MB 未満の場合、データは直接ストリーム レイヤーにインジェストされます。 インジェストされたデータが 1 MB 以上の場合、データはまずブロブストレージにアップロードされ、その結果、ブロブストレージに課金されます。 データは blob 、ストリーム レイヤーに設定されているストリーム Time-to-Live ( TTL; 存続可能時間)の間、 API 経由で利用できます。 TTL の期限が切れると、 Blob ストレージからデータが削除されます。

データに依存しません

  POST /<Base path for the ingest API from the API Lookup Service>/layers/<Layer ID> HTTP/1.1
  Host: <Hostname for the ingest API from the API Lookup Service>
  Authorization: Bearer <Authorization Token>
  Content-Type: <Content type configured for the target layer>
  Cache-Control: no-cache

  <Byte Array of Data>

SDII メッセージ一覧表

  POST /<Base path for the ingest API from the API Lookup Service>/layers/<Layer ID>/sdiiMessageList HTTP/1.1
  Host: <Hostname for the ingest API from the API Lookup Service>
  Authorization: Bearer <Authorization Token>
  Content-Type: application/x-protobuf
  Cache-Control: no-cache

  <Byte Array of Data in SDII MessageList Protobuf Format>

SDII メッセージリストエンドポイントは、入力メッセージリストを個々の SDII メッセージに分割します。そのため、消費者がデータを読み取る場合、そのデータは個々の SDII メッセージとして読み取る必要があります。

パーティション

  POST /<Base path for the ingest API from the API Lookup Service>/layers/<Layer ID>/partitions HTTP/1.1
  Host: <Hostname for the ingest API from the API Lookup Service>
  Authorization: Bearer <Authorization Token>
  Content-Type: application/json
  Cache-Control: no-cache

  {
     "partitions": [
       {
         "data": "eyJhaWQiOiJ0ZXN0LWFwcC1pZC0xIn0",
         "partition": "partition01",
         "checksum": "291f66029c232400e3403cd6e9cfd36e",
         "crc": "c3f276d7"
       }
      ]
  }

データに依存しないエンドポイントおよびパーティションエンドポイントへの要求は 、トレース ID を返します。この ID を使用して、リクエストを追跡し、カタログ内のメッセージを特定できます。 SDII メッセージリストリクエストは、個々のメッセージの ID のリストを返します。 任意で、リクエストにトレース ID を指定できます。 詳細については 、『 API リファレンス』を参照してください。

1 つのリクエストに 20 MB を超えるデータを公開します

20 MB を超えるデータブロブの公開は、少量のデータをアップロードするよりもやや複雑です。 20 MB を超えるデータを公開するに は、blob API を使用してデータをアップロードし、ingest公開パーティションの API を使用してデータを公開する必要があります。このプロセスは任意のサイズのデータのアップロードに使用できますが、 1 つではなく 2 つの API を使用するため、データが 20 MB を超える場合にのみこのプロセスを実行できます。

  1. HTTP 要求の認可トークンを取得します。

    認可トークンの取得方法については、次の URL を参照してください。

    『 ID およびアクセス管理ガイド』を参照してください

  2. 公開先のカタログのingestおよび blobAPI の API ベースの URL を取得します。

    API ベースの URL を取得するには、 API ルックアップサービスを使用します。 手順については、以下を参照してください。

    API 検索開発者ガイド

  3. データ ハンドルを生成します。

    blob API を使用してデータをアップロードするには、データの一意の識別子を生成する必要があります。 これは データ ハンドルと呼ばれます。

    データ ハンドルを生成する場合は、次の点に注意してください。

    • データ ハンドルは任意のものを選択できますが、すべてのバージョンでレイヤー内で一意である必要があります。
    • データ ハンドルには、任意の一意の番号、またはコンテンツまたはメタデータのハッシュを指定できます。
    • データ ハンドルを使用してデータをアップロードした後は、データ ハンドルを再利用できません。
    • データ ハンドルがすでに使用されているためにデータのアップロードに失敗した場合は、再試行ロジックでアップロード用の新しいデータ ハンドルを生成する必要があります。

    データ ハンドル の競合を管理するロジックを作成する必要があります。 たとえば、処理を再開して既存のデータ ハンドル にデータを再アップロードしようとすると、エラーが発生し、アップロードによって HTTP 409 の競合が発生します。

    blob API を使用して、データ ハンドルがすでに存在するかどうかを確認できます。

    HEAD /<Base path for the blob API from the API Lookup Service>/layers/<Layer ID>/data/<Data Handle> HTTP/1.1
    Host: <Hostname for the blob API from the API Lookup Service>
    Authorization: Bearer <Authorization Token>
    Cache-Control: no-cache
    

    応答が成功すると、指定したデータ ハンドル が存在することを示します。そのため、新しいを生成する必要があります。

    blob API を使用して、マルチパートアップロードの初期化、データパートのアップロード、およびマルチパートアップロードの完了によって生成したデータ ハンドルを使用してデータをアップロードできるようになりました。

  4. データ ハンドルのマルチパートアップロードを初期化します。

    データ ハンドルのマルチパートアップロードを初期化するには、次のリクエストを使用します。

    POST /<Base path for the blob API from the API Lookup Service>/layers/<Layer ID>/data/<Data Handle>/multiparts HTTP/1.1
    Host: <Hostname for the blob API from the API Lookup Service>
    Authorization: Bearer <Authorization Token>
    Content-Type: application/json
    Cache-Control: no-cache
    
    {
      "contentType": "application/octet-stream"
    }
    

    応答には、アップロードを管理するための URL が含まれています。

     {
       "links": {
         "uploadPart": {
           "href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=/parts",
           "method": "POST"
         },
         "complete": {
           "href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=",
           "method": "PUT"
         },
         "status": {
           "href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=",
           "method": "GET"
         },
         "delete": {
           "href": "https://blobstore.data.api.platform.here.com/blobstore/v1/catalogs/documentation-test/layers/versioned-layer-1/data/DataHandleA/multiparts/eyJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInVwbG9hZElkIjoiZS42eXhqRGdkSEttMlVvcThFYUZGUUk0V2tyV01naFNrcVJiaGc5ZFp4eEVWY1pFUVBZdDBMeXlLQ1NRS1BUcHlwWGg4eEVoTlBFbnJLYnptTnRmbWVUdnJpY1plZi45M2VybWU3S2NwZHJiT2lyQjdTS1Bod2FUSTg5ZmpRNHoifQ=",
           "method": "DELETE"
         }
       }
     }
    
  5. データパーツをアップロードします。

    マルチパートのアップロードを初期化したので uploadPart、前のステップで指定した POST メソッドの URL を使用してデータをアップロードできます。この名前はです。

    50 MB を超えるデータをアップロードする場合は、データをパーツに分割し、各パーツを個別にアップロードする必要があります。 各パーツの最小サイズは 5 MB ですが、最小サイズではない最後のパーツは除きます。 部品内の最大データ量は 5 GB です。 また、クエリ パラメーターでパーツ番号を入力する必要が partNumberあります。パーツ番号は後でデータを再構成するために使用されます。

    50 MB 未満のデータをアップロードする場合は、データを 1 つのパートにアップロードできますが、最小サイズはありません。

    POST <Path for uploadPart from prior step> HTTP/1.1
    Host: <Hostname for uploadPart from prior step>
    Authorization: Bearer <Authorization Token>
    Content-Type: application/octet-stream
    Cache-Control: no-cache
    
    <Data to Upload>
    

    応答には アップロードしたパーツの ID である etag ヘッダーが含まれています。 マルチパートのアップロードを完了するために必要に応じて、これらを収集し、関連付けられている部品番号と関連付けます。

    HTTP 5xx エラーを処理するための再試行ロジックがアプリケーションに含まれていることを推奨します。 再試行ロジックで指数バックオフを使用します。

  6. マルチパートのアップロードを完了します。

    複数パーツのアップロードを完了するには、この complete リクエストを作成するために指定された URL を使用して、アップロードされたすべてのパーツのタグとパーツ番号を入力します。

    PUT <Path for complete from prior step> HTTP/1.1
    Host: <Hostname for complete from prior step>
    Authorization: Bearer <Authorization Token>
    Content-Type: application/json
    Cache-Control: no-cache
    
    {
      "parts": [
        {
          "etag": "yJvYmplY3RJZCI6ImVyaWtzSGFuZGxlQSIsImNvbnRlbnRUeXBlIjoiYXBwbGlj"
          "number": 1
        },
        {
          "etag": "1h2h3k4j5h6ZCI6ImVyaWtzSGFuZGxlQadjiwo234ADF2323k34H5heoH543Hr"
          "number": 2
        }
      ]
    }
    
  7. ステータスを待ちます。

    このリクエストを作成するには、 URL Named statuscompletedを受信するか、またはsuccess使用するまで、アップロードのステータスをポーリングする必要があります。

    GET <Path for status from prior step> HTTP/1.1
    Host: <Hostname for status from prior step>
    Authorization: Bearer <Authorization Token>
    Cache-Control: no-cache
    
  8. メタデータを生成します。

    すべてのデータパーツがアップロードされたら、 HERE platform 内のデータを表すために使用されるメタデータを生成する必要があります。 少なくとも、メタデータはパーティション ID とデータのアップロードに使用したデータ ハンドルで構成されている必要があります。 設定できるフィールドの詳細な説明については ingest 、『 API リファレンス for the API 』を参照してください。

    API レファレンス (英語)

    メタデータを生成したら、すべてのデータがアップロードされ、すべてのメタデータが生成されたら、次のステップに進み、メタデータをアップロードできるように、どこかに集約します。

  9. メタデータをアップロードします。

    メタデータをアップロードするには ingest 、 API を使用します。 例 :

    POST /<Base path for the ingest API from the API Lookup Service>/layers/<Layer ID>/partitions HTTP/1.1
    Host: <Hostname for the ingest API from the API Lookup Service>
    Authorization: Bearer <Authorization Token>
    Content-Type: application/json
    Cache-Control: no-cache
    
    {
      "partitions": [
        {
          "compressedDataSize": 0,
          "dataHandle": "DataHandleA",
          "dataSize": 0,
          "partition": "partition01",
          "checksum": "291f66029c232400e3403cd6e9cfd36e",
          "crc": "c3f276d7"
        },
        {
           "compressedDataSize": 0,
           "dataHandle": "DataHandleB",
           "dataSize": 0,
           "partition": "partition02",
           "checksum": "291f66029c232400e3403cd6e9cfd36f",
           "crc": "c3f276d4"
        },
        ...
       ]
    }
    

    1 つのリクエストでアップロードおよび公開できるパーティションの最大数は 1,000 です。 1,000 を超えるパーティションをアップロードする場合は、最初の 1,000 個のパーティションのデータをアップロードしてから、 1,000 個のパーティションのメタデータをアップロードします。 次に、次のパーティションのセットに進みます。 すべてのデータがアップロードされるまで待ってからメタデータをアップロードしないでください。 パフォーマンスが低下する可能性があります。 代わりに、データをアップロードしてからメタデータを実行し、必要に応じてすべてのデータと対応するメタデータがアップロードされるまで繰り返します。

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

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