znas photos
사용자가 NAS Photos에 대해 질문할 때 이 스킬을 사용하세요: 사진/비디오 검색, 타임라인/지도 데이터 탐색, 앨범 관리, 앨범 다운로드, 유사 사진 찾기, AI 인식 사람/반려동물 앨범 확인.
이 스킬의 용도
- Photos 설정 경로를 읽고 업데이트합니다.
- 인덱싱된 사진/비디오를 검색하고 타임라인 버킷을 읽습니다.
- 사용자 앨범을 생성, 목록 조회, 업데이트, 삭제 및 다운로드합니다.
- 유사 사진 스캔 작업을 시작/목록 조회/삭제하고 그룹을 검사합니다.
- 사진 지도 클러스터, 위치 및 지도 스위치 상태를 읽습니다.
- 사람 또는 반려동물과 같은 AI 인식 기능 앨범을 읽고 관리합니다.
발견 규칙
- 추측 대신 점진적 CLI 발견을 선호합니다:
znas photos --helpznas photos <feature> --helpznas photos <feature> <command> --help
- 경로 인벤토리, 페이로드 유형, 예제 및 바이너리/쓰기 플래그가 필요할 때
znas schema photos를 사용합니다. - help/schema에 표시된 대로 백엔드 필드 이름을 정확히 유지합니다: 예를 들어
fileIds,taskId,groupId,albumId,album_id,fIds,eaHash. - 모든 ID를 맹목적으로 문자열로 변환하지 마십시오. 이전 API 읽기에서 반환된 필드 이름과 값 형태를 유지합니다.
안전 규칙
- 모든 쓰기 또는 삭제 전에 현재 상태를 읽습니다.
- 쓰기/삭제가 성공한 후, 최종 성공을 보고하기 전에 일치하는 읽기 명령을 다시 실행합니다.
- Photos 제어 평면 작업에 대해 호스트 네이티브 도구나 직접 내부
curl을 사용하지 말고znas photos ...에 해당 경로가 있을 때 사용하십시오. - Photos 백엔드는 범용 드라이런 모드를 제공하지 않습니다. 파괴적인 작업의 경우 정확한 대상을 먼저 검사하고 변경 범위를 좁게 유지하십시오.
- 비동기 유사 사진 스캔의 경우 작업 생성은 작업을 대기열에 넣을 뿐입니다. 상태 확인을 위해
similar task-list및 그룹 읽기를 사용하십시오. - 일반 앨범 경로와 AI 기능 앨범 경로는 서로 다른 표면입니다.
album_id와albumId를 혼용하지 마십시오.
바이너리 출력 규칙
바이너리로 표시된 경로는 stdout을 구문 분석 가능하게 유지하기 위해 -o <file>이 필요합니다:
znas photos album download ... -o album.zipznas photos photo stream ... -o live.movznas photos feature avatar ... -o avatar.jpg
명령이 실패하면 CLI는 파일을 쓰기 전에 JSON 오류 응답을 검증합니다.
일반적인 워크플로
Photos 상태 읽기
znas photos setting config
znas photos photo search --json '{"index":0,"size":20}'
znas photos photo timeline --params '{"time_tpl":"YYYY-MM","sort_order":1}'
앨범 워크플로
znas photos album list --params '{"index":0,"size":20}'
znas photos album create --json '{"name":"Trip"}'
znas photos album add-photos --json '{"album_id":123,"fileIds":["456"]}'
znas photos album get --params '{"album_id":123}'
znas photos album download --json '{"album_id":123,"download_name_prefix":"Trip"}' -o trip.zip
유사 사진
znas photos similar task-list --params '{"index":0,"size":20,"imgSize":20,"groupSize":4}'
znas photos similar task-create --json '{"dirPath":["/personal/Photos"]}'
znas photos similar group-list --params '{"taskId":123,"index":0,"size":20,"imgSize":20}'
znas photos similar group-detail --params '{"taskId":123,"groupId":456,"offset":0,"size":50}'
지도 및 AI 기능 앨범
znas photos map last-location
znas photos map bounds --params '{"minLat":30,"maxLat":31,"minLon":120,"maxLon":121,"zoomLevel":10}'
znas photos feature progress --params '{"taskType":1}'
znas photos feature album-list --params '{"taskType":1,"index":0,"size":20,"isHide":false}'
znas photos feature album-photos --params '{"albumId":123,"index":0,"size":50}'
기능
album
POSTdownload->/downloadFiles(auth)- 플래그:
binary - 정식 명령:
photos album download - 페이로드:
--json - 예제:
znas photos album download --json '{"album_id":123,"download_name_prefix":"album"}' -o album.zip - 주의: 다운로드는
album_id또는str_paths를 사용할 수 있습니다. 바이너리 zip 데이터를 반환하므로-o <file>이 필요합니다.
- 플래그:
POSTcreate->/album/createAlbum(auth)- 플래그:
write - 페이로드:
--json; 필수:name - 예제:
znas photos album create --json '{"name":"Trip","description":"2026 trip"}' - 주의: 먼저 앨범을 만든 다음
album add-photos로 사진을 추가하십시오.
- 플래그:
PUTupdate->/album/updateAlbum(auth)- 플래그:
write - 페이로드:
--json; 필수:id - 예제:
znas photos album update --json '{"id":123,"name":"Trip edited"}' - 주의: 일반 앨범 업데이트에는
album_id가 아닌 백엔드 필드id를 사용하십시오.
- 플래그:
DELETEdelete->/album/deleteAlbum(auth)- 플래그:
destructive - 페이로드:
--json; 필수:id - 예제:
znas photos album delete --json '{"id":123}' - 주의: 앨범을 읽은 후에만 삭제하십시오. 백엔드 동작이 변경되지 않는 한 원본 파일을 삭제하는 것을 의미하지 않습니다.
- 플래그:
GETlist->/album/listAlbum(auth)- 페이로드:
--params; 필수:size - 예제:
znas photos album list --params '{"index":0,"size":20,"sort_type":2,"sort_order":1}' - 주의: 목록 조회는 GET 쿼리입니다. JSON 본문이 아닌
index와size를 사용하십시오.
- 페이로드:
POSTadd-photos->/album/addPhotoToAlbum(auth)- 플래그:
write - 페이로드:
--json; 필수:album_id - 예제:
znas photos album add-photos --json '{"album_id":123,"fileIds":["456"]}' - 주의: 백엔드 필드는 대문자 I를 사용한
fileIds입니다. 정확한 NAS 경로가 있을 때paths도 지원됩니다.
- 플래그:
DELETEremove-photos->/album/removeAlubmPhotos(auth)- 플래그:
destructive - 정식 명령:
photos album remove-photos - 페이로드:
--json; 필수:album_id - 예제:
znas photos album remove-photos --json '{"album_id":123,"fileIds":["456"]}' - 주의: CLI는 업스트림 오타
removeAlubmPhotos를 숨깁니다. 의미 있는 명령remove-photos를 사용하십시오.
- 플래그:
GETget->/album/getAlbum(auth)- 페이로드:
--params; 필수:album_id - 예제:
znas photos album get --params '{"album_id":123}' - 주의: 앨범 상세는 GET 쿼리입니다.
--params를 통해album_id를 전달하십시오.
- 페이로드:
feature
GETprogress->/feature/process(auth)- 페이로드:
--params - 예제:
znas photos feature progress --params '{"taskType":1}' - 주의:
taskType을 생략하면 백엔드 기본 진행률을 읽습니다. 사용자가 얼굴이나 반려동물을 구체적으로 물으면 전달하십시오.
- 페이로드:
DELETEclear->/feature/clear(auth)- 플래그:
destructive - 페이로드:
--json; 필수:taskType - 예제:
znas photos feature clear --json '{"taskType":1}' - 주의: 이 작업은 작업 유형에 대해 발견된 기능 앨범 데이터를 재설정합니다. 먼저 진행률/목록을 읽으십시오.
- 플래그:
GETswitch->/feature/switch(auth)- 페이로드:
--params; 필수:type - 예제:
znas photos feature switch --params '{"type":1}' - 주의: 스위치 읽기는 필드
type을 사용합니다. 작업 앨범 필터는taskType을 사용합니다.
- 페이로드:
PUTset-switch->/feature/switch(auth)- 플래그:
write - 페이로드:
--json; 필수:type,switch - 예제:
znas photos feature set-switch --json '{"type":1,"switch":1}' - 주의: 전환 후 최종 상태를 보고하기 전에
feature switch를 다시 읽으십시오.
- 플래그:
PUTset-config->/feature/switch/config(auth)- 플래그:
write - 페이로드:
--json; 필수:type,hideNum - 예제:
znas photos feature set-config --json '{"type":1,"hideNum":5}' - 주의: 정확히
hideNum을 사용하십시오. 이 백엔드는 snake_case를 허용하지 않습니다.
- 플래그:
GETalbum-list->/feature/album/list(auth)- 페이로드:
--params; 필수:index,size - 예제:
znas photos feature album-list --params '{"taskType":1,"index":0,"size":20,"isHide":false}' - 주의: 인식된 기능 앨범은
taskType및isHide와 같은 camelCase 필드를 사용합니다.
- 페이로드:
GETalbum-count->/feature/album/count(auth)- 페이로드:
--params - 예제:
znas photos feature album-count --params '{"taskType":1,"isHide":false}' - 주의: 개수뿐만 아니라 앨범 ID가 필요하면
album-list를 사용하십시오.
- 페이로드:
GETrelation->/feature/relation(auth)- 페이로드:
--params - 예제:
znas photos feature relation --params '{"taskType":1}' - 주의: 관계는 인식된 앨범의 옵션입니다. 관계 텍스트를 업데이트하기 전에 읽으십시오.
- 페이로드:
GETalbum-get->/feature/album(auth)- 페이로드:
--params; 필수:albumId - 예제:
znas photos feature album-get --params '{"albumId":123}' - 주의: 기능 앨범 ID는
album_id를 사용하는 일반 앨범 상세와 달리 필드albumId를 사용합니다.
- 페이로드:
PUTalbum-update->/feature/album(auth)- 플래그:
write - 페이로드:
--json; 필수:albumId - 예제:
znas photos feature album-update --json '{"albumId":123,"name":"Alice"}' - 주의: 이전 읽기에서 값을 가져온 경우에만
coverId,coverPath또는relation을 사용하십시오.
- 플래그:
POSTalbum-hide->/feature/album/hide(auth)- 플래그:
write - 페이로드:
--json; 필수:albumIds,isHide - 예제:
znas photos feature album-hide --json '{"albumIds":[123],"isHide":true}' - 주의:
isHide를 변경한 후 숨겨진 목록과 표시 목록을 확인하십시오.
- 플래그:
POSTalbum-merge->/feature/album/merge(auth)- 플래그:
destructive - 페이로드:
--json; 필수:albumIds,targetId - 예제:
znas photos feature album-merge --json '{"albumIds":[123,124],"targetId":123}' - 주의: 모든 원본 앨범을 먼저 읽으십시오.
targetId는 유지될 앨범이어야 합니다.
- 플래그:
GETalbum-photos->/feature/album/photos(auth)- 페이로드:
--params; 필수:albumId,index,size - 예제:
znas photos feature album-photos --params '{"albumId":123,"index":0,"size":50}' - 주의: 인식된 앨범에 대해 이것을 사용하십시오. 일반 사용자 앨범에는
album get을 사용하십시오.
- 페이로드:
PUTalbum-photo-update->/feature/album/photo(auth)- 플래그:
write - 페이로드:
--json; 필수:albumId,fIds - 예제:
znas photos feature album-photo-update --json '{"albumId":123,"fIds":[456]}' - 주의: 이것은 인식된 기능 사진 행을 이동합니다.
fIds는album-photos의 기능 행 ID입니다.
- 플래그:
DELETEalbum-photo-delete->/feature/album/photo(auth)- 플래그:
destructive - 페이로드:
--json; 필수:fIds - 예제:
znas photos feature album-photo-delete --json '{"fIds":[456]}' - 주의: 먼저
album-photos를 읽고 반환된 기능 행 ID를 재사용하십시오.
- 플래그:
GETavatar->/feature/avatar(auth)- 플래그:
binary - 페이로드:
--params; 필수:eaHash - 예제:
znas photos feature avatar --params '{"eaHash":"<hash>"}' -o avatar.jpg - 주의: 이 경로는 이미지 파일을 반환합니다. 항상
-o <file>을 전달하십시오.
- 플래그:
map
GETforward->/map/forward(auth)- 페이로드:
--params; 필수:coords,model - 예제:
znas photos map forward --params '{"coords":"116.3,39.9","model":1}' - 주의: 여러 좌표는
coords내에서 세미콜론으로 구분됩니다.
- 페이로드:
GETswitch->/map/switch(auth)- 페이로드:
--params; 필수:type - 예제:
znas photos map switch --params '{"type":2}' - 주의: 지도 스위치는 기능 요청 필드
type을 사용합니다. 현재 지도 스위치 유형은 일반적으로 2입니다.
- 페이로드:
PUTset-switch->/map/switch(auth)- 플래그:
write - 페이로드:
--json; 필수:type,switch - 예제:
znas photos map set-switch --json '{"type":2,"switch":1}' - 주의: 쓰기 후 최종 상태를 보고하기 전에
map switch를 다시 읽으십시오.
- 플래그:
GETlast-location->/map/lastLocation(auth)- 페이로드:
none - 예제:
znas photos map last-location - 주의: 빈 결과는 인덱싱된 사진에 유용한 GPS 데이터가 없음을 의미할 수 있습니다.
- 페이로드:
GETbounds->/map/bounds(auth)- 페이로드:
--params; 필수:minLat,maxLat,minLon,maxLon,zoomLevel - 예제:
znas photos map bounds --params '{"minLat":30,"maxLat":31,"minLon":120,"maxLon":121,"zoomLevel":10}' - 주의: 경계는 camelCase 위도/경도 필드를 사용합니다. 최소값은 최대값보다 작아야 합니다.
- 페이로드:
GETgeohash->/map/geohash(auth)- 페이로드:
--params; 필수:geohash,index,size - 예제:
znas photos map geohash --params '{"geohash":"wtw3;wtw6","index":0,"size":20,"sortOrder":1}' - 주의: 여러 지오해시는 단일
geohash문자열에서 세미콜론으로 구분됩니다.
- 페이로드:
GETcountries->/map/location/country(auth)- 페이로드:
--params; 필수:index,size,viewType,citySize - 예제:
znas photos map countries --params '{"index":0,"size":20,"viewType":1,"citySize":5}' - 주의: 그룹화된 위치 개요를 위해 이 경로를 사용하십시오. 국가를 선택한 후
cities를 사용하십시오.
- 페이로드:
GETcities->/map/location/city(auth)- 페이로드:
--params; 필수:country,offset,size - 예제:
znas photos map cities --params '{"country":"China","offset":0,"size":20}' - 주의: 도시 조회는
countries에서 반환된 정확한country문자열이 필요합니다.
- 페이로드:
GETcity-photos->/map/location/city/photo(auth)- 페이로드:
--params; 필수:addressId,index,size - 예제:
znas photos map city-photos --params '{"addressId":123,"index":0,"size":50}' - 주의: 도시 응답에서
addressId를 사용하고 표시 도시 이름은 사용하지 마십시오.
- 페이로드:
photo
POSTsearch->/photos/search(auth)- 페이로드:
--json; 필수:index,size - 예제:
znas photos photo search --json '{"index":0,"size":20,"keyword_search":"beach"}' - 주의: 사진 검색은 POST JSON입니다.
keyword_search,album_ids,city_ids와 같은 백엔드 필드 이름을 유지하십시오.
- 페이로드:
GETtimeline->/photos/getTimeBuckets(auth)- 페이로드:
--params - 예제:
znas photos photo timeline --params '{"time_tpl":"YYYY-MM","sort_order":1}' - 주의: 타임라인은 GET 경로입니다.
--json이 아닌--params로 필터를 전달하십시오.
- 페이로드:
GETstream->/photos/stream(auth)- 플래그:
binary - 페이로드:
--params; 필수:id - 예제:
znas photos photo stream --params '{"id":123456}' -o live.mov - 주의: 이 경로는 라이브 포토 바이너리 데이터를 반환합니다. 항상
-o <file>을 전달하십시오.
- 플래그:
setting
POSTinit->/setting/init(auth)- 플래그:
write - 페이로드:
--json; 필수:init_path - 예제:
znas photos setting init --json '{"init_path":"/personal/Photos"}'
- 플래그: