다른 아티팩트 형식 작업

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

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

일반 아티팩트는 다음을 포함하되 이에 국한되지 않는 모든 형식의 파일입니다.

  • 압축된 파일(예: 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 \
        --projectPROJECT \
        --source=SOURCE \
        --package=PACKAGE \
        --version=VERSION \
        --location=LOCATION \
        --repository=REPOSITORY
    

    Windows(PowerShell)

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

    Windows(cmd.exe)

    gcloud artifacts generic upload ^
        --projectPROJECT ^
        --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/download/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
    

    아티팩트 나열

    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
    

    다음 단계