# 업로드

> 채팅 안 파일 선택기, 브라우저 업로드 링크, 셸에서 쓰는 미리 서명된 URL로 모든 MCP 클라이언트에서 내 이미지, 오디오, 동영상을 Nodaro에 업로드하세요.

Source: https://nodaro.ai/ko/docs/mcp/tools/uploads

**업로드 도구**는 내 파일을 Nodaro로 가져와, 어시스턴트가 다음 생성에서 사진, 음성 녹음, 클립을 쓸 수 있게 합니다. 업로드 방법은 채팅 안 파일 선택기, 브라우저에서 여는 링크, 셸 명령을 실행할 수 있는 클라이언트를 위한 미리 서명된 URL의 세 가지입니다. 모든 업로드 도구에는 `assets:write` 권한이 필요하며, 업로드에는 크레딧이 들지 않습니다.

## 사용할 방법
| 방법 | 도구 | 사용 가능한 곳 | 작동 방식 |
| --- | --- | --- | --- |
| 채팅 안 파일 선택기 | `upload_image_widget`, `upload_audio_widget`, `upload_video_widget` | 웹용 Claude처럼 MCP Apps를 표시하는 클라이언트 | 채팅 안에 파일 선택기가 열립니다. 공개 URL은 자동으로 채팅에 돌아갑니다. |
| 브라우저 링크 | `request_image_upload`, `request_audio_upload`, `request_video_upload` | 모든 클라이언트 | 브라우저에서 Nodaro 링크를 열고 그곳에 파일을 끌어다 놓습니다. |
| 미리 서명된 URL | `prepare_image_upload`, `prepare_audio_upload`, `prepare_video_upload` | Cursor, Cline, Claude Desktop, Claude Code처럼 셸에 접근할 수 있는 클라이언트 | 어시스턴트가 `curl` 명령 하나로 파일을 직접 보냅니다. |

이전 작업의 결과처럼 파일에 이미 공개 URL이 있으면, 업로드를 건너뛰고 그 URL을 바로 전달하세요.

## `upload_image_widget`
채팅 안에 이미지용 파일 선택기를 엽니다. 휴대폰에서는 선택기가 카메라나 사진 보관함을 엽니다. 위젯이 파일을 업로드하고 공개 URL을 채팅에 알려 주므로, 선택기를 한 번만 누르면 됩니다. `upload_audio_widget`과 `upload_video_widget`도 오디오와 동영상에 대해 같은 방식으로 작동합니다.

**권한:** `assets:write`. **크레딧:** 무료.

| 매개변수 | 타입 | 설명 |
| --- | --- | --- |
| `max_files` | integer | 선택기가 받는 파일 수로, 1~10입니다. 기본값은 `1`입니다. 한 사람의 레퍼런스 사진 여러 장처럼 파일이 여러 개 필요한 흐름에는 더 큰 값을 쓰세요. |
| `purpose` | string | 업로드 카드에 표시되는 짧은 라벨로, 최대 120자입니다. 예를 들어 `product image for the catalog app`(카탈로그 앱용 상품 이미지)처럼 씁니다. 어시스턴트에게 파일의 용도를 다시 알려 주는 역할도 합니다. |

**반환값:** `{ upload_url, public_url }` 쌍의 목록인 `uploads`와, 첫 번째 파일의 `upload_url`, `public_url`입니다. 선택기를 표시하지 않는 클라이언트도 이 값을 일반 링크로 보여 줄 수 있습니다.

## `request_image_upload`
어떤 브라우저에서든 열어 이미지를 끌어다 놓을 수 있는 짧은 Nodaro 링크를 반환합니다. 파일이 내 브라우저를 거쳐 전송되므로 모든 클라이언트에서, 파일 크기와 상관없이 작동합니다. `request_audio_upload`와 `request_video_upload`도 오디오와 동영상에 대해 같은 일을 합니다.

**권한:** `assets:write`. **크레딧:** 무료.

이 도구에는 매개변수가 없습니다.

**반환값:** 열어야 할 페이지인 `upload_page_url`과, 파일이 갖게 될 주소인 `public_url`입니다. 공개 URL을 미리 알 수 있으므로, 업로드가 끝났다고 확인해 주면 어시스턴트가 다음 호출에서 그 URL을 쓸 수 있습니다.

## `prepare_image_upload`
어시스턴트가 `curl`로 파일을 보낼, 미리 서명된 업로드 URL을 반환합니다. 파일이 대화를 거치지 않으므로 파일 크기는 상관없습니다. `prepare_audio_upload`와 `prepare_video_upload`도 오디오와 동영상에 대해 같은 일을 합니다.

**권한:** `assets:write`. **크레딧:** 무료.

| 매개변수 | 타입 | 설명 |
| --- | --- | --- |
| `mime_type` | string | **필수.** 보낼 파일의 유형입니다. |

| 도구 | 허용되는 `mime_type` 값 |
| --- | --- |
| `prepare_image_upload` | `image/png`, `image/jpeg`, `image/webp`, `image/avif`, `image/heic`, `image/heif` |
| `prepare_audio_upload` | `audio/mpeg`, `audio/mp4`, `audio/wav`, `audio/x-wav`, `audio/webm`, `audio/ogg`, `audio/flac`, `audio/x-flac`, `audio/aac`, `audio/x-m4a` |
| `prepare_video_upload` | `video/mp4`, `video/webm`, `video/quicktime`, `video/x-matroska` |

**반환값:** 1시간 동안 유효한 `upload_url`과 `public_url`입니다. 어시스턴트는 다음 명령으로 파일을 업로드합니다.

```bash
curl -X PUT --data-binary @path/to/file -H 'Content-Type: image/png' '<upload_url>'
```

그런 다음 `public_url`을 다음 도구에 전달합니다. 예를 들어 `image_url`로 전달합니다.

**웹용 Claude에서는 사용 불가:** 
웹용 Claude와 Claude Android 앱은 저장소 호스트에 접근할 수 없으므로, 미리 서명된 업로드가 실패합니다. 그곳에서는 채팅 안 파일 선택기나 브라우저 링크를 사용하세요.

## 업로드 후
- **공개 URL 전달**: `modify_image`, `animate_image`, `lip_sync`, `add_captions`처럼 미디어를 받는 모든 도구에 공개 URL을 전달하세요.
- **이전 업로드 찾기**: [`browse_uploads`](https://nodaro.ai/docs/mcp/tools/gallery-and-assets#browse_uploads)는 Nodaro가 생성한 결과와 별도로, 내가 업로드한 파일을 나열합니다.
- **내레이션 동영상에 로고 표시**: [동영상 디렉터](https://nodaro.ai/docs/mcp/video-director)의 브랜드 로고는 Nodaro에 업로드한 이미지여야 하므로, 먼저 이 도구 중 하나로 로고를 업로드하세요.

## 자주 묻는 질문

### 모든 MCP 클라이언트에서 쓸 수 있는 업로드 도구는 무엇인가요?

request 업로드 도구입니다. request_image_upload, request_audio_upload, request_video_upload는 내 브라우저에서 열어 파일을 끌어다 놓는 링크를 반환하므로, 파일 크기와 상관없이 모든 클라이언트에서 작동합니다.

### 웹용 Claude에서 prepare_image_upload가 실패하는 이유는 무엇인가요?

미리 서명된 업로드에는 셸 명령으로 파일을 직접 보낼 수 있는 클라이언트가 필요합니다. 웹용 Claude와 Claude Android 앱은 저장소 호스트에 접근할 수 없으므로, 그곳에서는 업로드 선택기나 request 업로드 링크를 사용하세요.

### 레퍼런스 사진 여러 장을 한 번에 업로드할 수 있나요?

네. upload_image_widget에 1~10 사이의 max_files를 보내세요. 그러면 선택기가 그만큼의 파일을 받고, 파일마다 공개 URL을 하나씩 반환합니다.

### 예전에 업로드한 파일을 다시 쓰려면 어떻게 하나요?

어시스턴트에게 browse_uploads를 호출해 달라고 요청하세요. 이 도구는 내 업로드를 URL과 함께 나열하며, 그 URL을 어떤 생성 도구에든 전달할 수 있습니다.
