Markdown 업로드 API
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
이 API를 사용하면 이슈, 머지 리퀘스트, 스니펫, 위키 페이지의 Markdown 텍스트에서 참조할 수 있는 Markdown 업로드를 관리합니다. 이슈나 머지 리퀘스트 설명 또는 댓글에서 사용할 파일을 지정한 프로젝트에 업로드합니다.
이 API를 사용하면 이슈, 머지 리퀘스트, 스니펫, 위키 페이지의 Markdown 텍스트에서 참조할 수 있는 Markdown 업로드를 관리합니다.
업로드 만들기#
이슈나 머지 리퀘스트 설명 또는 댓글에서 사용할 파일을 지정한 프로젝트에 업로드합니다.
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" \
--url "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 기준 내림차순으로 정렬해 조회합니다.
사전 요구 사항:
- Maintainer 또는 Owner 권한이 있어야 합니다.
GET /projects/:id/uploads
지원하는 속성은 다음과 같습니다.
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "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 또는 Owner 권한이 있어야 합니다.
GET /projects/:id/uploads/:upload_id
지원하는 속성은 다음과 같습니다.
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
upload_id |
integer | 예 | 업로드의 ID 입니다. |
성공하면 200과 함께 응답 본문에 업로드 파일을 반환합니다.
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/uploads/1"
시크릿 및 파일 이름으로 업로드된 파일 다운로드#
히스토리
- GitLab 17.4에서 도입되었습니다.
시크릿과 파일 이름으로 업로드 파일을 내려받습니다.
사전 요구 사항:
- Guest, Planner, Reporter, Developer, Maintainer 또는 Owner 권한이 있어야 합니다.
GET /projects/:id/uploads/:secret/:filename
지원하는 속성은 다음과 같습니다.
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
secret |
string | 예 | 업로드의 32자 시크릿입니다. |
filename |
string | 예 | 업로드의 파일 이름입니다. |
성공하면 200과 함께 응답 본문에 업로드 파일을 반환합니다.
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/uploads/648d97c6eef5fc5df8d1004565b3ee5a/sample.jpg"
ID로 업로드된 파일 삭제#
히스토리
- GitLab 17.2에서 도입되었습니다.
ID로 업로드 파일을 삭제합니다.
사전 요구 사항:
- Maintainer 또는 Owner 권한이 있어야 합니다.
DELETE /projects/:id/uploads/:upload_id
지원하는 속성은 다음과 같습니다.
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
upload_id |
integer | 예 | 업로드의 ID 입니다. |
성공하면 응답 본문 없이 204 상태 코드를 반환합니다.
요청 예시:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/uploads/1"
시크릿 및 파일 이름으로 업로드된 파일 삭제#
히스토리
- GitLab 17.4에서 도입되었습니다.
시크릿과 파일 이름으로 업로드 파일을 삭제합니다.
사전 요구 사항:
- Maintainer 또는 Owner 권한이 있어야 합니다.
DELETE /projects/:id/uploads/:secret/:filename
지원하는 속성은 다음과 같습니다.
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
secret |
string | 예 | 업로드의 32자 시크릿입니다. |
filename |
string | 예 | 업로드의 파일 이름입니다. |
성공하면 응답 본문 없이 204 상태 코드를 반환합니다.
요청 예시:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/uploads/648d97c6eef5fc5df8d1004565b3ee5a/sample.jpg"