-
HTTP 要求の認可トークンを取得します。
認可トークンの取得方法については、次の URL を参照してください。
『 ID およびアクセス管理ガイド』を参照してください
-
公開先のカタログのingest
および blob
API の API ベースの URL を取得します。
API ベースの URL を取得するには、 API ルックアップサービスを使用します。 手順については、以下を参照してください。
API 検索開発者ガイド
-
データ ハンドルを生成します。
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 を使用して、マルチパートアップロードの初期化、データパートのアップロード、およびマルチパートアップロードの完了によって生成したデータ ハンドルを使用してデータをアップロードできるようになりました。
-
データ ハンドルのマルチパートアップロードを初期化します。
データ ハンドルのマルチパートアップロードを初期化するには、次のリクエストを使用します。
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"
}
}
}
-
データパーツをアップロードします。
マルチパートのアップロードを初期化したので 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 エラーを処理するための再試行ロジックがアプリケーションに含まれていることを推奨します。 再試行ロジックで指数バックオフを使用します。
-
マルチパートのアップロードを完了します。
複数パーツのアップロードを完了するには、この 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
}
]
}
-
ステータスを待ちます。
このリクエストを作成するには、 URL Named status
completed
を受信するか、または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
-
メタデータを生成します。
すべてのデータパーツがアップロードされたら、 HERE platform 内のデータを表すために使用されるメタデータを生成する必要があります。 少なくとも、メタデータはパーティション ID とデータのアップロードに使用したデータ ハンドルで構成されている必要があります。 設定できるフィールドの詳細な説明については ingest
、『 API リファレンス for the API 』を参照してください。
API レファレンス (英語)
メタデータを生成したら、すべてのデータがアップロードされ、すべてのメタデータが生成されたら、次のステップに進み、メタデータをアップロードできるように、どこかに集約します。
-
メタデータをアップロードします。
メタデータをアップロードするには 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 個のパーティションのメタデータをアップロードします。 次に、次のパーティションのセットに進みます。 すべてのデータがアップロードされるまで待ってからメタデータをアップロードしないでください。 パフォーマンスが低下する可能性があります。 代わりに、データをアップロードしてからメタデータを実行し、必要に応じてすべてのデータと対応するメタデータがアップロードされるまで繰り返します。