잡동사니

구글 포토 & 픽셀 자동화 (16) - 자동업로드 세세하게 손본것들 본문

구글 포토 & 픽셀 자동화

구글 포토 & 픽셀 자동화 (16) - 자동업로드 세세하게 손본것들

승이75 2025. 1. 28. 15:41

 
이전에 메인폰에서 찍은 사진, 카톡동영상이나 사진 다운로드 받은것들에 대해서 각 이벤트 발생시 즉시 픽셀폰에 설치해둔 FTP 서버로 화일을 픽셀폰으로 보내고 픽셀폰에서 구글 포토 서버로 자동으로 업로드가 되도록 작업해둔 내용들을 정리했다.
 
https://seung275.tistory.com/280

 

구글 포토 픽셀폰 이용하기 (14) - FTP를 이용한 사진 업로드 자동화

이전에 아래 두개 글에 걸쳐 설명한 방법으로 메인폰에서 찍은 사진을 픽셀폰을 통해서 구글 포토 서버에 자동으로 업로드 되도록 작업을 해 두었다. https://seung275.tistory.com/272 구글 포토 픽셀

seung275.tistory.com

 
https://seung275.tistory.com/281

 

구글 포토 픽셀폰 이용하기 (15) - 네트워크 외부접속을 위한 포트포워딩

앞선 글에서 FTP 서버를 통한 메인폰에서 픽셀폰으로의 직접 화일 전송 방식으로 구글 포토 서버에 메인폰의 사진을 자동 업로드 하는 방법을 정리했다. https://seung275.tistory.com/280 구글 포토 픽

seung275.tistory.com

 
 
한번에 완전하게 정리해서 글로 남겨놓으면 좋겠으나 시행착오를 겪어가며 진행되는 작업과 그것들의 글정리를 조금씩 병행하다 보니 자꾸 이전글을 손보아야하게 된다. 그렇다고 예전글을 다시 깨끗히 수정하자니 약간의 귀찮음도 있고 해서 예전글에서 수정되어야 할 부분들만 다시 정리한다.
 

1. Autosync 동기화 시점 조정

이전에는 Tasker 프로파일 발동 조건을 File Modified를 이용해서 DCIM/Camera 디렉토리에 새로운 화일이 생성되는지의 여부를 사용했고, 옵션으로 ClosedWrite 조건을 주어서 화일(카메라 촬영이 완전히 끝나면)이 완전히 생성되면 후속 테스크를 진행하라고 해두었다. 일반적인 상황에서는 이정도로 해도 충분한데 사진을 짧은시간에 여러장 - Burst Shot - 찍게 되면 누락되는 사진들이 일부 생기는 문제가 있다. 이를 해결하고자 프로파일 발동조건을 카메라 앱이 종료하는 시점으로 변경했다.

수정전 - 화일 생성이 끝나는 시점

 

수정후 - 카메라 앱이 종료되는 시점

 
 

2. InSyncCamera, Pixel googlePhoto 테스크 조정

Burst Shot을 찍어보면 모든 화일들을 Autosync + FTP서버가 픽셀폰으로 잘 옮겨주는데 이게 픽셀폰의 DCIM 디렉토리에만 들어가고 구글포토 서버로 업로드를 못시키는 일이 가끔 생긴다. 구글 포토 서버로의 업로드는 오로지 픽셀폰의 구글 포토앱이 자동으로 올리는건데 따로 더 해줄 수 있는 일이 없어서 30초 - 그냥 넉넉히 줬다 - 경과후 강제로 구글 포토 앱을 한번 더 실행시켜주는 것으로 했다.
 
명확하게 하려면 일차로 구동했던 앱을 죽이고 다시 구둥하는게 좋을텐데 Tasker에서 앱 죽이는 일이 이렇게 어려울지 몰랐다. - 몇가지 방법들이 있었는데 안드로이드가 판올림을 거듭하면서 여러 방법들이 막혔다. - 그냥 tasker Launch App 에서 옵션을 "Always Start New Copy"를 체크했더니 원하는 대로 작동되는것 같다. 
 

수정전

 

수정후

 

 

"Always Start New Copy"를 꼭 체크해야 한다

 

3. "스샷만들고 수정하면" 프로파일 추가

스크린샷을 찍고 나서 수정을 하고 저장하면, 스크린샷 화일과 그 스크린샷을 수정한 화일이 동일한 디렉토리에 같이 존재함에도 불구하고 스크린샷 화일만 구글포토 서버로 업로드가 되고, 스샷을 수정한 화일은 업로드가 되지 않는다. 이게 참 무슨 오묘한 조화인지...
 
열심히 방법을 찾아보니 스샷을 수정한 화일은 File Modified 이벤트의 옵션으로 Modify 조건을 주면 잘 작동했다.
 

 
 

4. 테스크 단순하게 정리

"집안에서 카메라를 찍으면"이라는 트리거 조건을 구현하려면 "Wifi Connected + Not Camera"로 구현해야 했었다. - 아래 사진은 "Wifi Connected + Not Camera"의 이전 방식인 "File Modified + Wifi Near"의 모습이다. - 이게 거의 동일한 작업을 집안의 내부네트워크 상황이냐 그렇지 않은 외부 상황이냐에 따라 "집안"과 "집밖"의 두개씩의 동일한 작업들을 만들어 놓으니 너무 정신이 산만하다.

정신 산만...

 
집안인지 집밖인지를 인지시킬 수 있는 전역변수를 하나 만들어서 그 값으로 집안상황인지 집밖상황인지를 알 수 있도록 해서 프로파일에서는 집안, 집밖을 안따지게끔 하고 집안, 집밖을 따지는건 Task에서 하기로 했다. 예전에는 집안, 집밖별로 Task를 따로 부여했는데 두 Task를 합치고 전역변수 값에 따라 IF 문으로 대응하도록 했다. 
 

낮아진 엔트로피... 프로파일 조건에서 Wifi Connected는 빠졌다. 연결된 Activity도 InSyncCamera, OutSyncCamera 였는데 SyncCamera로 하나만 쓴다.

 

내부 네트워크 상황인지 아닌지 판단은 별도의 "집에오면", "집나가면"의 프로파일을 만들고 여기에 연결된 Activity에 전역변수 값을 설정하도록 했다.

 
 
그리고 전역변수는 "집에오면", "집나가면"이라는 프로파일을 따로 만들고 거기에 연결된 Task에서 %InHome이라는 변수에 값을 부여키로 했다.
 

"집에오면"에 연결된 enable In, diable Out 테스크의 내용이다. %InHome의 값을 1로 부여한다. "집나가면"의 상황이면 %InHome의 값을 0으로 바꾼다.

 
아래는 SyncCamera 테스크이다. 집안과 집밖의 두 경우에 대해 IF 문으로 상황을 판단하고 그에 맞는 서브 테스크를 수행하도록 한다. 

3번, 5번 라인의 수행 task 이름은 syncNow로 같지만 Extra folderPairs:값이 집 내부일때는 INFTP* 이고 집 외부일때는 OUTFTP*로 수행작업 내용이 다르다.

 

5. 동기화 최종 강제 수단

위 내용들은 모두 즉시 이벤트 발생시 구글포토 서버에 까지 사진과 동영상이 업로드 되도록 하기 위한 방법들을 정리한 것들이다. 최대한 누락없이 테스크가 수행되도록 노력하면서 계속 테스크 스크립트를 수정해왔지만 그럼에도 불구하고 누락이 있을 수 있을지 모른다. 이런 경우에는 무조건 1시간 간격으로 동기화가 될 수 있도록 했다. 물론 이 시간도 조정할 수 있겠지만 일단은 1시간으로 잡았다. 
 
단순하게 말해서 화일 자동 업로드 과정은 1단계로 AutoSync+FTP 서버가 메인폰에서 픽셀폰으로 파일을 전달하는 작업이 진행되어야 하고, 2단계는 픽셀폰에 들어온 파일을 구글포토 서버로 업로드 시키기 위한 구글포토앱 구동 작업이 진행되어야 한다.
 
1단계를 무조건 1시간 간격으로 실행하는 작업은 간단하다. AutoSync의 "설정 - 동기화 - AutoSync 스케줄"에서 시간을 정해주면 된다. 
 

 
AutoSync의 "활성화" 탭을 가보면 수행 로그를 볼 수 있다. 특별하게 동기화 시켜야할 이벤트가 없더라도 1시간 간격으로 자동 동기화를 시도하는 내용을 확인할 수 있다. ("활성화" 탭 우측 상단의 삼선을 누르고 "제외돈 파일 숨기기"를 선택해야 깨끗한(?) 로그를 볼 수 있다. 동기화 시킬 필요 - 예전에 진행되어서 - 가 없어서 생략된 화일들도 보이면 화면이 불필요하게 산만해짐)

 
2단계를 1시간 간격으로 수행하기, 다시말해 픽셀폰에서 1시간 간격으로 화면을 켜고 - 보통 sleep 모드에 들어가 있을 공산이 크다 - 구글포토 앱을 강제 구동하기는 아래와 같다.
 
아래는 픽셀폰의 Tasker에 만들어 놓은 테스크들이다. Routine이라는 이름의 테스크를 하나 추가로 만든다. 

  
아래는 Routine의 내용이다. Goto 문으로 loop를 만들고 내부에 Wait 문으로 1시간을 기다리게 했다. 이 테스크를 수행시켜 두면 1시간 간격으로 "스크린켜기"와 "구글포토앱 실행"이 일어난다. 물론 "구글 포토앱 실행"에서 옵션으로 "Always Start New Copy"을 선택 해두어야 한다. 
 

 
이렇게 해두면 구글포토 서버에 업로드가 필요한 상황 발생시 누락되는 화일들이 있더라도 - 1단계의 작업 시점과 2단계의 작업 시점의 차이 때문에 조금 애매해지만 - 대략 평균 30분, 최대 1시간내에 구글포토 서버로 화일 업로드가 이루어지게 된다.


 
또 더 수정이 필요할지 모르겠지만 일단 생각나는데로 여기까지 수정했다.