---
# System prepended metadata

title: exebrain 取得上傳/下載 URL (ver.2)

---

暫用 jwt (請在每個 request 中放入此 jwt):
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyLTIyOTk2IiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY29wZSI6ImwxL2wyL2wzL2w0In0.zjwSeTZYYV610zefiMVP_9Ve7OLXvrk_Qqdchx0CGKI
  
    
  
### 取得上傳 URL
### GET   https://nesttest-iexoypndpa-de.a.run.app/upload-urls

(取得後，請再依提示上傳到所有 url，才算完成上傳程序)

Request (請以 query 塞進以下 key/value)
```ts!
type Req = {
  tenantId: string;  // 請先使用 tenantId: 'exebrain-test'
  trainingSN: string; // 請先自由定義即可，例：tw-00001
  contentType: string; // 可從 req.headers 取得，例: image/jpeg, video/mp4
  fileName: string;  // 原始檔名，請連帶副檔名一起提供
};
```
Response
```ts!
type Res = {
    "gcpResult": {
        "url": "https://storage...",
        "fileName": "l1/l2/.../file.png", // 檔案完整路徑，請求下載 URL 時使用，請留存
        "comment": "..."; // 上傳提醒
    },
    "dbxResult": {
        "urlForDropbox": "https://content...",
        "pathForDropbox": "/exebrain-test/l1/l2/.../file.png", // 檔案完整路徑，請留存
        "curlExample": "..."; // 上傳提醒
    }
}
```

### 取得下載 URL (GCP, 正式)
### GET   https://nesttest-iexoypndpa-de.a.run.app/download-url

Request (請以 query 塞進以下 key/value)
```ts!
type Req = {
  tenantId: string;  // 請先使用 tenantId: 'exebrain-test'
  fileName: string;  // 輸入 "取得上傳 url" API 時取得的完整路徑 (與 dropbox 的有差)
};
```

Response
```ts!
type Res = {
  url: "https://storage...";
};
```

### 取得下載 URL (Dropbox, 備用)
### GET   https://nesttest-iexoypndpa-de.a.run.app/dbx-upload-url

Request (請以 query 塞進以下 key/value)
```ts!
type Req = {
  tenantId: string;  // 請先使用 tenantId: 'exebrain-test'
  fileName: string;  // 輸入 "取得上傳 url" API 時取得的完整路徑 (與 gcp 的有差)
};
```

Response
```ts!
type Res = {
  url: "https://storage...";
}
```

