다른 아티팩트 형식으로 작업

이 페이지에서는 Artifact Registry 일반 형식 저장소에서 특정 패키지 형식을 준수하지 않는 버전이 지정된 변경 불가 아티팩트를 저장하는 방법을 설명합니다.

Artifact Registry에 일반 아티팩트를 저장하는 방법에 익숙해지려면 빠른 시작을 시도해 보세요.

일반 아티팩트는 다음 예시를 포함하는 모든 형식의 파일입니다.

  • 압축 파일(예: tar 파일, ZIP 파일)
  • 구성 파일(예: YAML 파일, TOML 파일)
  • 텍스트 파일 및 PDF
  • 바이너리
  • 보관 파일
  • 미디어 파일

일반 형식 저장소에 저장된 아티팩트는 다른 형식과 달리 Docker, 패키지 관리자 또는 기타 서드 파티 클라이언트에서 사용되지 않습니다.

시작하기 전에

  1. 일반 형식 저장소를 만듭니다.
  2. 저장소에 대해 필요한 권한이 있는지 확인합니다.
  3. (선택사항) Google Cloud CLI 명령어의 기본값을 구성합니다.

필요한 역할

일반 아티팩트를 관리하는 데 필요한 권한을 얻으려면 관리자에게 저장소에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

일반 아티팩트 업로드

일반 아티팩트는 파일별로 개별적으로 업로드하거나 디렉터리별로 여러 개 업로드할 수 있습니다. 업로드할 때 패키지 이름과 버전 번호를 지정해야 합니다. 또한 파일을 업로드할 대상 파일 구조의 경로를 지정할 수도 있습니다. 대상 경로를 지정하지 않으면 아티팩트는 기본적으로 루트 수준에 업로드됩니다.

일반 아티팩트를 저장소에 업로드하려면 다음 명령어를 실행하세요.

gcloud

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT: Google Cloud 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • LOCATION: 저장소의 리전 또는 멀티 리전 위치입니다.
  • REPOSITORY: 아티팩트가 저장된 저장소의 이름입니다.
  • SOURCE: 업로드할 파일의 위치와 이름입니다.
  • PACKAGE: 업로드할 파일의 패키지 이름입니다.
  • VERSION: 업로드할 파일의 버전입니다.
  • 다음 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud artifacts generic upload \
        --project=PROJECT \
        --source=SOURCE \
        --package=PACKAGE \
        --version=VERSION \
        --location=LOCATION \
        --repository=REPOSITORY
    

    Windows(PowerShell)

    gcloud artifacts generic upload `
        --project=PROJECT `
        --source=SOURCE `
        --package=PACKAGE `
        --version=VERSION `
        --location=LOCATION `
        --repository=REPOSITORY
    

    Windows(cmd.exe)

    gcloud artifacts generic upload ^
        --project=PROJECT ^
        --source=SOURCE ^
        --package=PACKAGE ^
        --version=VERSION ^
        --location=LOCATION ^
        --repository=REPOSITORY
    
    아티팩트 업로드 시 사용할 수 있는 추가적인 플래그는 다음과 같습니다.
    • --destination-path=PATH: 패키지와 버전 내에서 지정된 폴더로 업로드합니다. 존재하지 않는 폴더를 추가할 수도 있습니다.
    • --source-directory=SOURCE_DIR: --source 플래그를 대체하고 단일 파일 대신 디렉터리를 업로드합니다.
    • --source-directory 플래그를 사용하여 기존 파일을 건너뛰는 경우 --skip-existing. 그렇지 않으면 기존 파일을 업로드하려고 할 때 명령어가 실패합니다.

    API

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT는 Google Cloud 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
    • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.
    • REPOSITORY는 아티팩트가 저장된 저장소의 이름입니다.
    • SOURCE: 업로드할 파일의 위치와 이름입니다.
    • PACKAGE는 업로드할 파일의 패키지 이름입니다.
    • VERSION: 업로드할 파일의 버전입니다.
    • NAME: 저장소에 있는 파일의 새 이름입니다.

    HTTP 메서드 및 URL:

      POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
    

    cURL(Linux, macOS, Cloud Shell)

    요청을 보내려면 다음 명령어를 실행합니다.

      curl -v \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -F "meta={'filename':'NAME','package_id':'PACKAGE','version_id':'VERSION'};type=application/json" \
          -F "blob=@SOURCE" \
          https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSTIORY/genericArtifacts:create?alt=json
    

    아티팩트 나열

    Console

    Google Cloud 콘솔에서 일반 형식 저장소 아티팩트를 볼 수 있습니다.

    1. Google Cloud 콘솔에서 저장소 페이지를 엽니다.

      저장소 페이지 열기

    2. 저장소 목록에서 저장소를 선택합니다.

    3. 패키지 이름을 클릭합니다.

    4. 모든 패키지 버전의 다운로드 가능한 파일을 보려면 파일 탭을 클릭합니다.

    5. 특정 버전 패키지의 다운로드 가능한 파일을 보려면 버전 이름을 클릭한 후 파일 탭을 클릭합니다.

    gcloud

    gcloud artifacts files list 명령어를 사용하여 저장소의 아티팩트를 나열할 수 있습니다.

    아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT: Google Cloud 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
    • LOCATION: 저장소의 리전 또는 멀티 리전 위치입니다.
    • REPOSITORY: 아티팩트가 저장된 저장소의 이름입니다.

    다음 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud artifacts files list \
        --project=PROJECT \
        --location=LOCATION \
        --repository=REPOSITORY
    

    Windows(PowerShell)

    gcloud artifacts files list `
        --project=PROJECT `
        --location=LOCATION `
        --repository=REPOSITORY
    

    Windows(cmd.exe)

    gcloud artifacts files list ^
        --project=PROJECT ^
        --location=LOCATION ^
        --repository=REPOSITORY
    
    응답에는 PACKAGE:VERSION:NAME 형식의 파일 세부정보가 포함되어 있습니다.
    FILE: my-package:1.0.0:hello.yaml
    CREATE_TIME: 2023-03-09T20:55:07
    UPDATE_TIME: 2023-03-09T20:55:07
    SIZE (MB): 0.000
    OWNER: projects/my-project/locations/us-central1/repositories/quickstart-generic-repo/packages/my-package/versions/1.0.0
    

    다음 플래그 중 하나 또는 둘 다를 추가하여 버전과 패키지별로 정렬할 수도 있습니다.

    • --package=PACKAGE: 특정 패키지의 파일만 표시합니다.
    • --version=VERSION: 특정 버전의 파일만 표시합니다.

    일반 아티팩트 다운로드

    저장소에서 일반 아티팩트를 다운로드하려면 다음 명령어를 실행합니다.

    gcloud

    아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

    • DESTINATION: 로컬 파일 시스템의 대상 폴더 경로입니다. 대상 폴더가 이미 있어야 하며 그렇지 않으면 명령어가 실패합니다.
    • LOCATION: 저장소의 리전 또는 멀티 리전 위치입니다.
    • REPOSITORY: 아티팩트가 저장된 저장소의 이름입니다.
    • PACKAGE: 다운로드할 파일의 경로입니다.
    • VERSION: 다운로드할 파일의 버전입니다.
    • NAME(선택사항): 다운로드할 파일의 이름입니다. 이 플래그가 없으면 명령어가 지정된 패키지 및 버전에 대한 모든 파일을 다운로드하고 대상에 필요한 디렉터리를 만듭니다.

    다음 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud artifacts generic download \
        --destination=DESTINATION \
        --location=LOCATION \
        --repository=REPOSITORY \
        --package=PACKAGE \
        --version=VERSION \
        --name=NAME
    

    Windows(PowerShell)

    gcloud artifacts generic download `
        --destination=DESTINATION `
        --location=LOCATION `
        --repository=REPOSITORY `
        --package=PACKAGE `
        --version=VERSION `
        --name=NAME
    

    Windows(cmd.exe)

    gcloud artifacts generic download ^
        --destination=DESTINATION ^
        --location=LOCATION ^
        --repository=REPOSITORY ^
        --package=PACKAGE ^
        --version=VERSION ^
        --name=NAME
    

    API

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT: Google Cloud 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
    • LOCATION: 저장소의 리전 또는 멀티 리전 위치입니다.
    • REPOSITORY: 아티팩트가 저장된 저장소의 이름입니다.
    • DESTINATION: 로컬 파일 시스템의 대상 폴더 경로입니다. 대상 폴더가 이미 있어야 하며 그렇지 않으면 명령어가 실패합니다.
    • FILE: URL로 인코딩된 파일 이름입니다. gcloud artifacts files list 명령어를 실행하고 FILE에 대한 값을 복사하여 이 값을 찾을 수 있습니다. 이 명령어의 경우 URL 인코딩 형식으로 변환해야 합니다. 예를 들어 path/to/file.jarpath%2Fto%2Ffile.jar로 입력해야 합니다.

    HTTP 메서드 및 URL:

    GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다운로드가 즉시 시작되는 것을 확인할 수 있습니다.

    일반 아티팩트 삭제

    저장소에서 일반 아티팩트를 삭제하려면 gcloud artifacts files delete 명령어를 실행합니다. 이 명령어는 일반 형식의 저장소에만 사용할 수 있습니다.

    아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

    • FILE: 파일의 완전한 이름입니다. gcloud artifacts files list 명령어를 실행하고 FILE에 대한 값을 복사하여 이 값을 찾을 수 있습니다.
    • LOCATION: 저장소의 리전 또는 멀티 리전 위치입니다.
    • REPOSITORY: 아티팩트가 저장된 저장소의 이름입니다.

    다음 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud artifacts files delete \
        FILE \
        --location=LOCATION \
        --repository=REPOSITORY
    

    Windows(PowerShell)

    gcloud artifacts files delete `
        FILE `
        --location=LOCATION `
        --repository=REPOSITORY
    

    Windows(cmd.exe)

    gcloud artifacts files delete ^
        FILE ^
        --location=LOCATION ^
        --repository=REPOSITORY
    

    다음 단계