Markdown 업로드 API
Markdown 업로드는 프로젝트에 업로드된 파일로, 이슈, 머지 요청, 스니펫, 또는 위키 페이지의 Markdown 텍스트에서 참조될 수 있습니다.
파일 업로드
- GitLab 15.10에서 일반적으로 사용 가능. 기능 플래그
 enforce_max_attachment_size_upload_api제거됨.- GitLab 17.1에서
 full_path응답 속성 패턴 변경됨.- GitLab 17.3에서
 id속성이 추가됨.
특정 프로젝트에 파일을 업로드하여 이슈 또는 머지 요청 설명이나 댓글에서 사용할 수 있습니다.
POST /projects/:id/uploads
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
file | 
      string | 예 | 업로드할 파일입니다. | 
id | 
      integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. | 
파일 시스템에서 파일을 업로드하려면 --form 인수를 사용하십시오. 이렇게 하면 cURL이 Content-Type: multipart/form-data 헤더를 사용하여 데이터를 게시합니다. file= 매개변수는 파일 시스템의 파일을 가리켜야 하며 @로 시작해야 합니다.
예제 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --form "file=@dk.png" "https://gitlab.example.com/api/v4/projects/5/uploads"
예제 응답:
{
  "id": 5,
  "alt": "dk",
  "url": "/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
  "full_path": "/-/project/1234/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
  "markdown": ""
}
응답에서:
- 
full_path는 파일의 절대 경로입니다. - 
url은 Markdown 컨텍스트에서 사용할 수 있습니다.markdown형식이 사용될 때 링크가 확장됩니다. 
업로드 목록
- GitLab 17.2에서 도입됨.
 
프로젝트의 모든 업로드를 created_at 기준으로 내림차순으로 정렬하여 가져옵니다.
전제 조건:
- 최소한 유지 관리자 역할이 필요합니다.
 
GET /projects/:id/uploads
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
id | 
      integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. | 
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/uploads"
예제 응답:
[
  {
    "id": 1,
    "size": 1024,
    "filename": "image.png",
    "created_at":"2024-06-20T15:53:03.067Z",
    "uploaded_by": {
      "id": 18,
      "name" : "Alexandra Bashirian",
      "username" : "eileen.lowe"
    }
  },
  {
    "id": 2,
    "size": 512,
    "filename": "other-image.png",
    "created_at":"2024-06-19T15:53:03.067Z",
    "uploaded_by": null
  }
]
ID로 업로드된 파일 다운로드
- 도입됨 GitLab 17.2에서.
 
ID로 업로드된 파일을 다운로드합니다.
사전 조건:
- 최소 Maintainer 역할이 필요합니다.
 
GET /projects/:id/uploads/:upload_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
id | 
      정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로. | 
upload_id | 
      정수 | 예 | 업로드의 ID. | 
성공적으로 처리되면 200 및 응답 본문에 업로드된 파일이 반환됩니다.
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/uploads/1"
비밀번호와 파일 이름으로 업로드된 파일 다운로드
- 도입됨 GitLab 17.4에서.
 
비밀번호와 파일 이름으로 업로드된 파일을 다운로드합니다.
사전 조건:
- 최소 Guest 역할이 필요합니다.
 
GET /projects/:id/uploads/:secret/:filename
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
id | 
      정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로. | 
secret | 
      문자열 | 예 | 32자 비밀번호. | 
filename | 
      문자열 | 예 | 업로드된 파일의 이름. | 
성공적으로 처리되면 200 및 응답 본문에 업로드된 파일이 반환됩니다.
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/uploads/648d97c6eef5fc5df8d1004565b3ee5a/sample.jpg"
ID로 업로드된 파일 삭제
- 도입됨 GitLab 17.2에서.
 
ID로 업로드된 파일을 삭제합니다.
사전 조건:
- 최소 Maintainer 역할이 필요합니다.
 
DELETE /projects/:id/uploads/:upload_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
id | 
      정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로. | 
upload_id | 
      정수 | 예 | 업로드의 ID. | 
성공적으로 처리되면 204 상태 코드가 응답 본문 없이 반환됩니다.
예제 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/uploads/1"
비밀번호와 파일 이름으로 업로드된 파일 삭제
- 도입됨 GitLab 17.4에서.
 
비밀번호와 파일 이름으로 업로드된 파일을 삭제합니다.
사전 조건:
- 최소 Maintainer 역할이 필요합니다.
 
DELETE /projects/:id/uploads/:secret/:filename
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
id | 
      정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로. | 
secret | 
      문자열 | 예 | 32자 비밀번호. | 
filename | 
      문자열 | 예 | 업로드된 파일의 이름. | 
성공적으로 처리되면 204 상태 코드가 응답 본문 없이 반환됩니다.
예제 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/uploads/648d97c6eef5fc5df8d1004565b3ee5a/sample.jpg"
        도움말