# Task: Google Drive 공유 폴더로 스크린샷 업로드 수정

## 프로젝트 경로
`/home/jay/projects/InfoKeyword/`

## 문제
서비스 계정은 자체 스토리지 할당량이 없어서 Google Drive 업로드 시 `storageQuotaExceeded` 403 에러 발생.
제이회장님이 Google Drive에 "InfoKeyword" 폴더를 생성하고 서비스 계정에 편집 권한을 공유함.

## 공유 폴더 정보
- 폴더명: `InfoKeyword`
- 폴더 ID: `1MBjfdNL2woyX47866UgfrLRyWZGHcSHP`
- shared=True (서비스 계정에서 접근 가능 확인됨)

## 수정 내용

### 1. `worker/config.py`
환경변수 또는 상수로 공유 폴더 ID 추가:
```python
GOOGLE_DRIVE_SHARED_FOLDER_ID = os.environ.get(
    "GOOGLE_DRIVE_SHARED_FOLDER_ID",
    "1MBjfdNL2woyX47866UgfrLRyWZGHcSHP"
)
```

### 2. `worker/reporter/drive_uploader.py`
`get_or_create_root_folder()` 메서드를 수정:
- 기존: 서비스 계정 드라이브에서 "InfoKeyword-Reports" 폴더를 찾거나 생성
- 변경: `GOOGLE_DRIVE_SHARED_FOLDER_ID`를 루트로 사용. 그 안에 "Reports" 서브폴더를 찾거나 생성

핵심 변경:
- 루트 폴더 생성/검색 시 `supportsAllDrives=True` 파라미터 추가
- `create_analysis_folder()`, `upload_file()` 에서도 `supportsAllDrives=True` 추가
- 파일 업로드 시 공개 읽기 권한 설정도 유지

### 3. 기존 서비스 계정 드라이브 정리 (선택)
기존에 서비스 계정 드라이브에 생성된 "InfoKeyword-Reports" 폴더와 하위 파일들은 삭제해도 됨 (어차피 접근 불가한 파일들)

## 테스트
1. Worker에서 `DriveUploader` 인스턴스 생성 후 `get_or_create_root_folder()` 호출 → 공유 폴더 ID 반환 확인
2. 테스트 파일 업로드 → 403 에러 없이 성공 확인
3. 업로드된 파일의 webViewLink가 정상 접근 가능한지 확인

## Worker 재시작
수정 후 Worker 재시작 필요:
1. `fuser 8100/tcp | xargs kill`
2. `cd /home/jay/projects/InfoKeyword && source /home/jay/workspace/.env.keys && unset CLAUDECODE && nohup python3 -m uvicorn worker.main:app --host 0.0.0.0 --port 8100 > /tmp/infokeyword-worker.log 2>&1 &`
⚠️ 반드시 `unset CLAUDECODE` 포함 (Worker가 Claude CLI를 호출하므로 중첩 세션 방지)

## 주의사항
- `supportsAllDrives=True`를 빠뜨리면 공유 드라이브 파일이 검색/생성 안 됨
- 기존 `_ROOT_FOLDER_NAME` 상수는 제거하거나 서브폴더명으로 전환
- 공개 읽기 권한(anyone reader) 설정은 유지해야 함 (Frontend에서 iframe으로 표시)
