Data - Upload Preview
업로드 요청을 사용하면 호출자가 Azure Maps 계정에 데이터 콘텐츠를 업로드할 수 있습니다.
적용 대상: S1 가격 책정 계층.
데이터 업로드 API를 사용하면 호출자가 Azure Maps 서비스에 데이터 콘텐츠를 업로드할 수 있습니다.
이 API는 Azure Maps 지오펜싱 서비스에서 사용하기 위해 형식으로 지오펜스 GeoJSON
컬렉션을 업로드하는 것과 같은 시나리오에서 사용할 수 있습니다.
참고
Azure Maps 데이터 서비스 사용 중지
Azure Maps Data Service(v1 및 v2 모두)는 이제 더 이상 사용되지 않으며 24/9/16에 사용 중지됩니다. 서비스 중단을 방지하려면 2024년 9월 16일까지 Azure Maps Data Registry 서비스를 사용할 수 있도록 데이터 서비스에 대한 모든 호출을 업데이트해야 합니다. 자세한 내용은 데이터 레지스트리를 만드는 방법을 참조하세요.
업로드 요청 제출
콘텐츠를 업로드하려면 요청을 사용합니다 POST
. 요청 본문에는 업로드할 데이터가 포함됩니다. 헤더는 Content-Type
데이터의 콘텐츠 형식으로 설정됩니다.
예를 들어 형식으로 지오펜스 GeoJSON
컬렉션을 업로드하려면 요청 본문을 지오펜스 콘텐츠로 설정합니다. 쿼리 매개 변수를 dataFormat
geojson으로 설정하고 헤더를 Content-Type
다음 미디어 유형 중 하나로 설정합니다.
application/json
application/vnd.geo+json
application/octet-stream
다음은 중심점과 반경을 사용하여 원 기하 도형으로 표시된 단순 지오펜스를 업로드하기 위한 샘플 요청 본문입니다. 아래 샘플은 에 있습니다.GeoJSON
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.126986, 47.639754]
},
"properties": {
"geometryId": "001",
"radius": 500
}
}]
}
데이터 업로드 API는 장기 실행 작업을 수행합니다.
데이터 업로드 제한
현재 모든 Azure Maps 계정에는 데이터 스토리지 제한이 있습니다.
스토리지 제한에 도달하면 모든 새 업로드 API 호출이 409 Conflict
http 오류 응답을 반환합니다.
항상 데이터 삭제 API 를 사용하여 이전/사용되지 않은 콘텐츠를 삭제하고 새 업로드를 위한 공간을 만들 수 있습니다.
POST https://{geography}.atlas.microsoft.com/mapData/upload?api-version=1.0&dataFormat={dataFormat}
POST https://{geography}.atlas.microsoft.com/mapData/upload?subscription-key={subscription-key}&api-version=1.0&dataFormat={dataFormat}
URI 매개 변수
Name | In(다음 안에) | 필수 | 형식 | Description |
---|---|---|---|---|
geography
|
path | True |
string |
이 매개 변수는 Azure Maps Creator 리소스가 있는 위치를 지정합니다. 유효한 값은 우리와 eu입니다. |
api-version
|
query | True |
string |
Azure Maps API의 버전 번호. 현재 버전은 1.0입니다. |
data
|
query | True |
업로드되는 콘텐츠의 데이터 형식입니다. |
|
subscription-key
|
query |
string |
Azure Map 계정에서 제공하는 Azure Maps 키 중 하나입니다. 인증을 관리하는 방법에 대한 자세한 내용은 이 문서를 참조하세요. |
요청 헤더
Name | 필수 | 형식 | Description |
---|---|---|---|
x-ms-client-id |
string |
Microsoft Entra ID 보안 모델과 함께 사용할 계정을 지정합니다. Azure Maps 계정의 고유 ID를 나타내며 Azure Maps 관리 평면 계정 API에서 검색할 수 있습니다. Azure Maps Microsoft Entra ID 보안을 사용하려면 다음 문서를 참조하세요. |
요청 본문
Name | 형식 | Description |
---|---|---|
UploadContent |
object |
업로드할 콘텐츠입니다. |
응답
Name | 형식 | Description |
---|---|---|
200 OK |
데이터 업로드에 실패했습니다. 업로드된 콘텐츠가 모든 유효성 검사를 충족하지 못했습니다. 응답 본문에는 발생한 모든 오류가 포함됩니다. |
|
201 Created |
리소스가 성공적으로 만들어졌습니다. Headers Location: string |
|
202 Accepted |
비동기 요청에 대해서만 지원됩니다. 요청 수락됨: 처리를 위해 요청이 수락되었습니다. 위치 헤더의 URL을 사용하여 결과를 다시 시도하거나 액세스하세요. Headers Location: string |
|
400 Bad Request |
잘못된 요청: 하나 이상의 매개 변수가 잘못 지정되었거나 상호 배타적입니다. |
|
401 Unauthorized |
잘못된 구독 키 또는 잘못된 Microsoft Entra ID 전달자 토큰으로 인해 액세스가 거부되었습니다. 활성 Azure 구독 및 지도 리소스에 유효한 키를 제공해야 합니다. 그렇지 않은 경우 제공된 Microsoft Entra ID 전달자 토큰에 대한 오류 코드 및 설명에 대한 WWW-Authenticate 헤더를 확인합니다. Headers WWW-Authenticate: string |
|
403 Forbidden |
권한, 용량 또는 인증 문제. |
|
404 Not Found |
찾을 수 없음: 요청된 리소스를 찾을 수 없지만 나중에 다시 사용할 수 있습니다. |
|
500 Internal Server Error |
이 요청을 처리하는 동안 오류가 발생했습니다. 나중에 다시 시도하세요. |
보안
AADToken
다음은 Microsoft Entra OAuth 2.0 흐름입니다. Azure 역할 기반 액세스 제어와 쌍을 이루는 경우 Azure Maps REST API에 대한 액세스를 제어하는 데 사용할 수 있습니다. Azure 역할 기반 액세스 제어는 하나 이상의 Azure Maps 리소스 계정 또는 하위 리소스에 대한 액세스를 지정하는 데 사용됩니다. 모든 사용자, 그룹 또는 서비스 주체는 기본 제공 역할 또는 REST API를 Azure Maps 하나 이상의 권한으로 구성된 사용자 지정 역할을 통해 액세스 권한을 부여할 수 있습니다.
시나리오를 구현하려면 인증 개념을 보는 것이 좋습니다. 요약하자면, 이 보안 정의는 특정 API 및 범위에 대한 액세스 제어가 가능한 개체를 통해 애플리케이션을 모델링하는 솔루션을 제공합니다.
참고
- 이 보안 정의는 애플리케이션이
x-ms-client-id
액세스를 요청하는 Azure Maps 리소스를 나타내기 위해 헤더를 사용해야 합니다. 이는 지도 관리 API에서 가져올 수 있습니다.
Authorization URL
은 Azure 퍼블릭 클라우드 instance 관련됩니다. 소버린 클라우드에는 고유한 권한 부여 URL 및 Microsoft Entra ID 구성이 있습니다.
* Azure 역할 기반 액세스 제어는 Azure Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면에서 구성됩니다.
* Azure Maps Web SDK를 사용하면 여러 사용 사례에 대한 애플리케이션의 구성 기반 설정을 사용할 수 있습니다.
- Microsoft ID 플랫폼 대한 자세한 내용은 Microsoft ID 플랫폼 개요를 참조하세요.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Azure Portal Azure Maps 계정을 만들거나 PowerShell, CLI, Azure SDK 또는 REST API를 사용할 때 프로비전되는 공유 키입니다.
이 키를 사용하면 모든 애플리케이션이 모든 REST API에 액세스할 수 있습니다. 즉, 이 키는 발급된 계정에서 master 키로 사용할 수 있습니다.
공개적으로 노출된 애플리케이션의 경우 기밀 클라이언트 애플리케이션 접근 방식을 사용하여 키를 안전하게 저장할 수 있도록 Azure Maps REST API에 액세스하는 것이 좋습니다.
Type:
apiKey
In:
query
SAS Token
공유 액세스 서명 토큰은 Azure Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면을 통해 Azure Maps 리소스의 SAS 나열 작업에서 만들어집니다.
이 토큰을 사용하면 모든 애플리케이션이 특정 토큰에 사용할 만료, 속도 및 지역에 대한 Azure 역할 기반 액세스 제어 및 세분화된 제어를 사용하여 액세스할 수 있는 권한이 부여됩니다. 즉, SAS 토큰을 사용하여 애플리케이션이 공유 키보다 더 보안이 유지되는 방식으로 액세스를 제어할 수 있습니다.
공개적으로 노출된 애플리케이션의 경우 렌더링 남용을 제한하고 정기적으로 SAS 토큰을 갱신하도록 맵 계정 리소스 에서 허용되는 특정 원본 목록을 구성하는 것이 좋습니다.
Type:
apiKey
In:
header
예제
Upload GeoJSON data containing geometries that represent a collection of geofences
Sample Request
POST https://us.atlas.microsoft.com/mapData/upload?subscription-key=[subscription-key]&api-version=1.0&dataFormat=geojson
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.126986,
47.639754
]
},
"properties": {
"geometryId": "001",
"radius": 500
}
}
]
}
Sample Response
Location: https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0
Access-Control-Expose-Headers: Location
{
"operationId": "{operationId}",
"status": "Succeeded",
"created": "2020-01-02 1:02:03 AM +00:00",
"resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0"
}
operation-Location: https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0
Access-Control-Expose-Headers: Location
{
"error": {
"code": "400 Bad Request",
"message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry."
}
}
{
"error": {
"code": "400 BadRequest",
"message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
}
}
{
"error": {
"code": "401 Unauthorized",
"message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}
}
{
"error": {
"code": "403 Forbidden",
"message": "Permission, capacity, or authentication issues."
}
}
{
"error": {
"code": "404 NotFound",
"message": "Not Found: the requested resource could not be found, but it may be available again in the future."
}
}
{
"error": {
"code": "500 InternalServerError",
"message": "An error occurred while processing the request. Please try again later."
}
}
정의
Name | Description |
---|---|
Long |
Long-Running Operations API에 대한 응답 모델입니다. |
OData |
이 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다. |
OData |
이 응답 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다. |
type |
요청의 상태 상태입니다. |
Upload |
업로드되는 콘텐츠의 데이터 형식입니다. |
LongRunningOperationResult
Long-Running Operations API에 대한 응답 모델입니다.
Name | 형식 | Description |
---|---|---|
created |
string |
만든 타임스탬프입니다. |
error |
이 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다. |
|
operationId |
string |
이 장기 실행 작업의 ID입니다. |
resourceLocation |
string |
만든 리소스에 대한 세부 정보를 위한 위치 URI입니다. 이는 요청이 성공적으로 완료된 경우에만 제공됩니다. |
status |
요청의 상태 상태입니다. |
|
warning |
이 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다. |
ODataError
이 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다.
Name | 형식 | Description |
---|---|---|
code |
string |
ODataError 코드입니다. |
details |
이 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다. |
|
message |
string |
사용 가능한 경우 오류에 대한 사람이 읽을 수 있는 설명입니다. |
target |
string |
사용 가능한 경우 오류를 일으키는 대상입니다. |
ODataErrorResponse
이 응답 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다.
Name | 형식 | Description |
---|---|---|
error |
이 개체는 Azure Maps API에서 오류가 발생할 때 반환됩니다. |
type
요청의 상태 상태입니다.
Name | 형식 | Description |
---|---|---|
Failed |
string |
요청에 하나 이상의 오류가 있습니다. |
NotStarted |
string |
요청이 아직 처리를 시작하지 않았습니다. |
Running |
string |
요청이 처리를 시작했습니다. |
Succeeded |
string |
요청이 성공적으로 완료되었습니다. |
UploadDataFormat
업로드되는 콘텐츠의 데이터 형식입니다.
Name | 형식 | Description |
---|---|---|
geojson |
string |
GeoJSON 은 JSON 기반 지리 공간적 데이터 교환 형식입니다. |
zip |
string |
압축된 데이터 형식입니다. |