Vision 웨어하우스 API를 사용하면 명령줄을 사용하여 Vision 웨어하우스 리소스를 관리할 수 있습니다.
데이터 수집 배포 앱의 연결된 웨어하우스 (corpus)에는 하나 이상의 미디어 객체 (예: 동영상 리소스)가 있습니다. 이러한 미디어 객체(asset 리소스)에는 메타데이터와 리소스 주석이 포함됩니다. 다음 명령어를 사용하여 이러한 미디어 객체를 관리합니다.
애셋 리소스 만들기
REST
애셋 리소스를 만들려면 projects.locations.corpora.assets.create 메서드를 사용하여 POST 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: (선택사항) 저작물 ID에 대해 사용자가 제공한 값입니다. 이 요청에서 값은 다음과 같은 형식으로 요청 URL에 추가됩니다.
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets?asset_id=ASSET_ID
- TIME_TO_LIVE: 말뭉치에 속한 모든 애셋의 수명 (TTL) 또는 특정 애셋의 TTL입니다. 예를 들어 TTL이 100일인 애셋이 포함된 코퍼스의 경우
8640000(초) 값을 제공합니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets
JSON 요청 본문:
{
}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets"
PowerShell
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}
애셋 리소스 업데이트
애셋 업데이트는 스트리밍 동영상 애셋에만 사용할 수 있습니다.
REST
애셋 리소스를 업데이트하려면 projects.locations.corpora.assets.patch 메서드를 사용하여 PATCH 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
?updateMask=fieldToUpdate:updateMask을 적용할 수 있는 사용 가능한 필드 중 하나입니다. 사용 가능한 필드:- TTL (수명):
?updateMask=ttl - 모든 필드 업데이트:
?updateMask=*
- TTL (수명):
HTTP 메서드 및 URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl
JSON 요청 본문:
{
"ttl": {
"seconds": "1"
}
}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl"
PowerShell
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}
웨어하우스의 애셋 나열
REST
코퍼스의 애셋을 나열하려면 projects.locations.corpora.assets.list 메서드를 사용하여 GET 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"assets": [
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID1",
"ttl": "86400s"
},
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID2",
"ttl": "86400s"
}
]
}
애셋 가져오기
REST
애셋에 대한 세부정보를 가져오려면 projects.locations.corpora.assets.get 메서드를 사용하여 GET 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
HTTP 메서드 및 URL:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID",
"ttl": "86400s"
}
미디어 애셋 삭제
다음 샘플은 창고 애셋을 삭제하여 관련 주석에 액세스할 수 없게 하고 검색 결과에서 삭제합니다.
REST 및 명령줄
다음 코드 샘플은 projects.locations.corpora.assets.delete 메서드를 사용하여 창고의 애셋을 삭제합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
HTTP 메서드 및 URL:
DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID" | Select-Object -Expand Content
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/operations/OPERATION_ID"
}
작업 상태 가져오기
장기 실행 작업의 상태를 가져오려면 projects.locations.operations.get 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - OPERATION_ID: 장기 실행 작업을 시작할 때 반환되는 작업 ID입니다. 예를 들면 다음과 같습니다.
- projects/123456/locations/us-central1/[...]/operations/OPERATION_ID
HTTP 메서드 및 URL:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/warehouseoperations/OPERATION_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/warehouseoperations/OPERATION_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/warehouseoperations/OPERATION_ID" | Select-Object -Expand Content
GetAsset 또는 ListAssets를 호출해도 애셋이 표시되지 않습니다.
애셋 미디어 데이터 관리
애셋의 미디어 콘텐츠는 다양한 API를 통해 Vision 웨어하우스로 인제스트할 수 있습니다.
스트리밍 동영상 애셋
스트리밍 동영상 애셋의 미디어 콘텐츠를 관리하려면 다음 안내를 참고하세요.
시간 파티션을 사용하여 동영상 클립 애셋 가져오기
창고를 만들고 창고에 동영상 asset 리소스를 저장한 후 특정 동영상 클립을 가져올 수 있습니다. ClipAssetRequest을 전송하여 정의한 기간의 미디어 데이터를 가져올 수 있습니다.
ClipAssetRequest를 보낼 때는 다음을 정의해야 합니다.
temporal_partition- 원하는 클립의 기간입니다.
다음 예에서는 2021년 9월 초의 보안 카메라 영상이 포함된 애셋이 있는 창고를 고려합니다. 이 애셋은 수명 (TTL)을 초과하지 않았습니다.
2021년 9월 1일 2시 51분 59초(GMT)부터 2021년 9월 1일 2시 52분 30초(GMT)까지의 기간을 클립으로 만들려면 먼저 시작 시간과 종료 시간을 google.protobuf.Timestamp로 변환해야 합니다. 이 값은 Unix epoch 이후의 기간으로 표현됩니다. 시작 시간과 종료 시간을 변환한 후 다음과 비슷한 요청을 보낼 수 있습니다.
REST
동영상 클립에 대한 세부정보를 가져오려면 projects.locations.corpora.assets.clip 메서드를 사용하여 GET 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예를 들면
us-central1,europe-west4입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
- START_TIME: 파티션의 시작 시간입니다. Unix 에포크 이후의 기간으로 표현됩니다 (예:
1630464719). - END_TIME: 파티션의 종료 시간입니다. Unix 에포크 이후의 기간으로 표현됩니다 (예:
1630464750).
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:clip
JSON 요청 본문:
{
"temporal_partition": {
"start_time": {
"seconds": START_TIME
},
"end_time": {
"seconds": END_TIME
}
}
}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:clip"
PowerShell
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:clip" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"time_indexed_uris" : {
"temporal_partition" : {
"start_time" : {
"seconds": 1630464719
},
"end_time" : {
"seconds": 1630464729
}
},
"uri": "