InfoGrab DocsInfoGrab Docs

Markdown 업로드 API

요약

이 API를 사용하면 이슈, 머지 리퀘스트, 스니펫, 위키 페이지의 Markdown 텍스트에서 참조할 수 있는 Markdown 업로드를 관리합니다. 이슈나 머지 리퀘스트 설명 또는 댓글에서 사용할 파일을 지정한 프로젝트에 업로드합니다.

이 API를 사용하면 이슈, 머지 리퀘스트, 스니펫, 위키 페이지의 Markdown 텍스트에서 참조할 수 있는 Markdown 업로드를 관리합니다.

업로드 만들기#

히스토리
  • 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" \
    --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": "![dk](/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png)"
}

응답에서 각 항목의 의미는 다음과 같습니다.

  • 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"

Markdown 업로드 API

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

이 API를 사용하면 이슈, 머지 리퀘스트, 스니펫, 위키 페이지의 Markdown 텍스트에서 참조할 수 있는 Markdown 업로드를 관리합니다. 이슈나 머지 리퀘스트 설명 또는 댓글에서 사용할 파일을 지정한 프로젝트에 업로드합니다.

이 API를 사용하면 이슈, 머지 리퀘스트, 스니펫, 위키 페이지의 Markdown 텍스트에서 참조할 수 있는 Markdown 업로드를 관리합니다.

업로드 만들기#

히스토리
  • 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" \
    --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": "![dk](/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png)"
}

응답에서 각 항목의 의미는 다음과 같습니다.

  • 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"