이 페이지에서는 Artifact Registry 일반 형식 저장소에서 특정 패키지 형식을 준수하지 않는 버전이 지정된 변경 불가 아티팩트를 저장하는 방법을 설명합니다.
Artifact Registry에 일반 아티팩트를 저장하는 방법에 익숙해지려면 빠른 시작을 시도해 보세요.
일반 아티팩트는 다음 예시를 포함하는 모든 형식의 파일입니다.
- 압축 파일(예: tar 파일, ZIP 파일)
- 구성 파일(예: YAML 파일, TOML 파일)
- 텍스트 파일 및 PDF
- 바이너리
- 보관 파일
- 미디어 파일
일반 형식 저장소에 저장된 아티팩트는 다른 형식과 달리 Docker, 패키지 관리자 또는 기타 서드 파티 클라이언트에서 사용되지 않습니다.
시작하기 전에
- 일반 형식 저장소를 만듭니다.
- 저장소에 대해 필요한 권한이 있는지 확인합니다.
- (선택사항) Google Cloud CLI 명령어의 기본값을 구성합니다.
필요한 역할
일반 아티팩트를 관리하는 데 필요한 권한을 얻으려면 관리자에게 저장소에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
아티팩트 보기:
Artifact Registry 리더(
roles/artifactregistry.reader
) -
아티팩트 다운로드:
Artifact Registry 리더(
roles/artifactregistry.reader
) -
저장소에 아티팩트 업로드:
Artifact Registry 작성자(
roles/artifactregistry.writer
) -
아티팩트 삭제:
Artifact Registry 저장소 관리자(
roles/artifactregistry.repoAdmin
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
일반 아티팩트 업로드
일반 아티팩트는 파일별로 개별적으로 업로드하거나 디렉터리별로 여러 개 업로드할 수 있습니다. 업로드할 때 패키지 이름과 버전 번호를 지정해야 합니다. 또한 파일을 업로드할 대상 파일 구조의 경로를 지정할 수도 있습니다. 대상 경로를 지정하지 않으면 아티팩트는 기본적으로 루트 수준에 업로드됩니다.
일반 아티팩트를 저장소에 업로드하려면 다음 명령어를 실행하세요.
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 콘솔에서 일반 형식 저장소 아티팩트를 볼 수 있습니다.
Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 목록에서 저장소를 선택합니다.
패키지 이름을 클릭합니다.
모든 패키지 버전의 다운로드 가능한 파일을 보려면 파일 탭을 클릭합니다.
특정 버전 패키지의 다운로드 가능한 파일을 보려면 버전 이름을 클릭한 후 파일 탭을 클릭합니다.
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
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.jar
를path%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