Shotgun 모듈 속성
- shotgun_api3.shotgun.LOG: API 실행 시 로그 메시지를 기록하는 로깅 인스턴스.
- shotgun_api3.shotgun.NO_SSL_VALIDATION: SSL 인증서의 호스트 이름 일치 검증을 비활성화하는 옵션.
Shotgun 클래스
shotgun_api3.shotgun.Shotgun
설명
Shotgun 서버와 클라이언트 간의 연결을 초기화하고 관리하는 클래스입니다. 이 클래스는 데이터를 CRUD(Create, Read, Update, Delete) 방식으로 Shotgun 서버와 주고받을 수 있게 합니다.
생성자 매개변수
매개변수 | 유형 | 필수 여부 | 설명 |
base_url | str | 필수 | Shotgun 서버의 HTTP/HTTPS URL. 슬래시(/) 없이 작성해야 함. 예: https://example.shotgunstudio.com |
script_name | str | 선택 | 서버 인증에 사용되는 Script 엔터티의 이름. script_name이 제공되면 api_key도 반드시 제공되어야 하며, login 및 password는 사용할 수 없음. |
api_key | str | 선택 | Script 인증을 위한 API 키. script_name과 함께 사용됨. |
convert_datetimes_to_utc | bool | 선택 | 날짜/시간 데이터를 로컬 시간에서 UTC로 변환 후 서버로 전송. 기본값은 True. |
http_proxy | str | 선택 | 프록시 서버 URL. 형식은 [username:password@]111.222.333.444[:8080]로 입력. 예: 192.168.0.1:8888, joe:user@192.168.0.1:8888. |
connect | bool | 선택 | True일 경우, Shotgun 인스턴스를 생성할 때 서버에 즉시 연결하여 호환성을 확인. 주로 테스트 목적으로 사용되며 기본값은 True. |
ca_certs | str | 선택 | 외부 SSL 인증서 파일 경로. 회사 내부의 인증서를 사용하거나 애플리케이션을 실행 파일로 패키징할 때 필요할 수 있음. 환경 변수 SHOTGUN_API_CACERTS로도 설정 가능. |
login | str | 선택 | 사용자 기반 인증을 위한 사용자 로그인 이름. 이 값이 설정되면 password도 반드시 제공되어야 하며, script_name 및 api_key는 사용할 수 없음. |
password | str | 선택 | 사용자 기반 인증을 위한 비밀번호. login과 함께 사용됨. |
sudo_as_login | str | 선택 | 모든 작업에 대해 지정된 사용자의 권한을 적용. 작업 기록에는 이 사용자가 작업한 것으로 표시되며, 실제 작업한 스크립트 또는 사용자는 메타데이터(sudo_actual_user)에 기록됨. |
session_token | str | 선택 | 세션 기반 인증에 사용하는 토큰. get_session_token() 메서드를 통해 토큰을 생성 가능. |
auth_token | str | 선택 | 2단계 인증이 활성화된 서버에서 인증에 필요한 토큰. login 및 password와 함께 사용되며, script_name 및 api_key는 사용할 수 없음. 단, 토큰이 만료되면 새로운 인증이 필요함. |
주요 기능
- 인증(Authentication)
- script_name + api_key 방식
- login + password 방식 (사용자 기반 인증)
- session_token 또는 auth_token 방식 (세션 및 2단계 인증)
- 시간 변환
- convert_datetimes_to_utc 매개변수를 통해 서버와 클라이언트 간의 시간 데이터 동기화.
- 프록시 지원
- http_proxy 매개변수를 사용하여 프록시 서버를 경유한 연결 설정 가능.
- SSL 인증서 설정
- ca_certs를 통해 맞춤형 인증서 사용 가능.
주의사항
- Python 2.6.2 이하 사용 시 프록시 문제
- HTTPS 연결이 프록시 서버를 통해 작동하지 않을 수 있음. Python 2.6.3 이상으로 업그레이드 필요.
- 2단계 인증
- auth_token을 사용할 경우, 인증 토큰이 만료될 수 있으므로 세션을 즉시 설정해야 함.
Shotgun 메서드
연결 및 인증 (Connection & Authentication)
메서드 | 설명 |
Shotgun.connect | 클라이언트를 서버에 연결. 이미 연결된 상태라면 아무 작업도 수행하지 않음. |
Shotgun.close | 현재 서버 연결을 종료. |
Shotgun.authenticate_human_user | HumanUser를 인증. |
Shotgun.get_session_token | 현재 세션과 관련된 세션 토큰을 가져옴. |
Shotgun.add_user_agent | 사용자 에이전트 헤더에 추가. |
Shotgun.reset_user_agent | 사용자 에이전트를 기본값으로 재설정. |
Shotgun.set_session_uuid | 현재 API 인스턴스에서 브라우저 session_uuid를 설정. |
Shotgun.info | 서버로부터 API 관련 메타데이터를 가져옴. |
CRUD 작업
메서드 | 설명 |
Shotgun.create | 특정 엔터티 타입의 새 엔터티를 생성. |
Shotgun.find | 주어진 필터와 일치하는 엔터티 검색. |
Shotgun.find_one | find()의 단축 메서드로, 단일 결과를 반환. |
Shotgun.update | 지정된 엔터티를 주어진 데이터로 업데이트. |
Shotgun.delete | 지정된 엔터티를 삭제(퇴역 처리). |
Shotgun.revive | 이전에 삭제된 엔터티를 복구. |
Shotgun.batch | 여러 create(), update(), delete() 요청을 일괄 처리. |
Shotgun.summarize | 쿼리 결과 필드 데이터를 요약. |
Shotgun.note_thread_read | 특정 노트의 전체 대화(답글 및 첨부 파일 포함)를 반환. |
Shotgun.text_search | 특정 엔터티 타입에서 텍스트 검색. |
Shotgun.update_project_last_accessed | 프로젝트의 last_accessed_by_current_user 필드를 현재 타임스탬프로 업데이트. |
Shotgun.work_schedule_read | 특정 날짜 범위에 대한 작업일 규칙 반환. |
Shotgun.work_schedule_update | 특정 날짜에 대한 작업 스케줄 업데이트. |
Shotgun.preferences_read | 사이트 선호도(subset) 읽기. |
파일 작업 (Working With Files)
메서드 | 설명 |
Shotgun.upload | 특정 엔터티에 파일 업로드. |
Shotgun.upload_thumbnail | 로컬 경로에서 파일을 업로드하고 이를 특정 엔터티의 썸네일로 설정. |
Shotgun.upload_filmstrip_thumbnail | 필름스트립 썸네일을 특정 엔터티에 업로드. |
Shotgun.download_attachment | Shotgun 첨부 파일과 관련된 파일 다운로드. |
Shotgun.get_attachment_download_url | 제공된 첨부 파일의 다운로드 URL 반환. |
Shotgun.share_thumbnail | 썸네일을 여러 Shotgun 엔터티와 연동. |
활동 스트림 (Activity Stream)
메서드 | 설명 |
Shotgun.activity_stream_read | Shotgun에서 활동 스트림 데이터를 검색. |
Shotgun.follow | 사용자가 특정 엔터티를 팔로우하도록 추가. |
Shotgun.unfollow | 사용자가 특정 엔터티 팔로우를 해제. |
Shotgun.followers | 특정 엔터티의 모든 팔로워를 반환. |
Shotgun.following | 사용자가 팔로우 중인 모든 엔터티 반환. |
Shotgun 스키마 및 설정 (Schema and Preferences)
메서드 | 설명 |
Shotgun.schema_entity_read | 모든 활성 엔터티 타입, 해당 표시 이름, 가시성 반환. |
Shotgun.schema_field_read | 특정 엔터티 타입의 모든 필드 스키마 또는 특정 필드 이름의 스키마 반환. |
Shotgun.schema_field_create | 특정 엔터티 타입에 새 필드 생성. |
Shotgun.schema_field_update | 특정 엔터티의 필드 속성 업데이트. |
Shotgun.schema_field_delete | 특정 엔터티 타입에서 필드 삭제. |
Shotgun.schema_read | 모든 엔터티의 모든 필드 스키마를 가져옴. |
Shotgun.schema | 버전 3.0.0 이후 사용되지 않음. |
Shotgun.entity_types | 버전 3.0.0 이후 사용되지 않음. |
Deprecated (사용 중단된 메서드)
- Shotgun.schema
- Shotgun.entity_types참고: 위 메서드들은 더 이상 지원되지 않으므로 새 버전에서는 사용하지 않는 것이 좋습니다.
필터 및 데이터 처리
필터 문법
- 필터는 조건 리스트로 구성되며, 기본적으로 filter_operator로 결합됩니다.
- all : 모든 조건을 만족해야 함 (AND 조건).
- any : 조건 중 하나만 만족해도 됨 (OR 조건).
기본 필터 문법
- 기본 형식: [<field>, <relation>, <value(s)>]
- 예제:
filters = [
["sg_status_list", "is", "ip"], # 상태가 "ip"인 것
["assets", "is", {"type": "Asset", "id": 9}] # 특정 Asset ID와 연결된 것
]
result = sg.find("Shot", filters)
복합 필터 문법
- 복합 조건은 사전 형태로 작성되며, filter_operator를 사용하여 구성됩니다.
- 예제:
filters = [
["sg_status_list", "is", "ip"], # 상태가 "ip"인 것
{
"filter_operator": "any", # OR 조건
"filters": [
["assets", "is", {"type": "Asset", "id": 9}],
["assets", "is", {"type": "Asset", "id": 23}]
]
}
]
result = sg.find("Shot", filters)
지원되는 관계 연산자
- 다양한 데이터 타입에 대해 사용할 수 있는 연산자가 제공됩니다.
- 주요 연산자:
- is, is_not: 특정 값과 같은지 비교.
- less_than, greater_than: 값의 대소 비교.
- contains, not_contains: 특정 문자열이나 값을 포함하는지 확인.
- in, not_in: 값이 리스트에 포함되는지 확인.
- between, not_between: 값이 특정 범위 내에 있는지 확인.
- starts_with, ends_with: 문자열이 특정 접두사 또는 접미사로 시작/끝나는지 확인.
필터 프리셋
- 필터 프리셋은 복잡한 필터링 작업을 간단히 수행하기 위해 제공됩니다.
- 프리셋 이름과 파라미터를 사용하여 특정 작업을 정의할 수 있습니다.
- 필터 프리셋은 일반 필터와 함께 사용할 수 있으며, AND 조건으로 결합됩니다.
프리셋 사용 예제
LATEST 프리셋: 엔티티별 최신 데이터를 반환.
additional_filter_presets = [
{
"preset_name": "LATEST",
"latest_by": "ENTITIES_CREATED_AT"
}
]
filters = [["code", "is", "ABC"]]
result = sg.find("Version", filters=filters, additional_filter_presets=additional_filter_presets)
CUT_SHOT_VERSIONS 프리셋: 특정 Cut ID와 연결된 모든 Shot의 버전을 검색.
additional_filter_presets = [
{
"preset_name": "CUT_SHOT_VERSIONS",
"cut_id": 1
}
]
result = sg.find("Version", additional_filter_presets=additional_filter_presets)
사용 가능한 프리셋 목록
- Cut:
- LATEST (최신 개정 번호를 반환).
- Version:
- LATEST (엔티티별 최신 Version 반환).
- CUT_SHOT_VERSIONS (특정 Cut ID와 연결된 Shot의 최신 Version 반환).
- Published Files:
- LATEST (최신 파일 반환).
기타 주요 기능
- 워크 스케줄 관리: 작업일 규칙 읽기 및 업데이트(work_schedule_read, work_schedule_update).
- 활동 스트림: 활동 기록 데이터를 검색 (activity_stream_read).
- 요약(Summarize): 엔터티 데이터를 그룹화 및 통계 처리.
환경 변수 및 로컬라이제이션
- ShotGrid는 환경 변수와 지역 설정(Localization)을 지원하여 다양한 사용자 환경에서 적응 가능.
'Flow Production Tracking > Python api' 카테고리의 다른 글
Handling Action Menu Item Calls (0) | 2024.12.25 |
---|---|
API Usage Tips (1) | 2024.12.25 |
API Reference(2) (0) | 2024.12.25 |
Authentication (2) | 2024.12.25 |
Installation (0) | 2024.12.25 |