Bekerja dengan format artefak lain

Halaman ini menjelaskan cara menyimpan artefak yang tidak dapat diubah dan memiliki versi yang tidak mematuhi format paket tertentu di repositori format umum Artifact Registry.

Untuk memahami cara menyimpan artefak generik di Artifact Registry, Anda dapat mencoba panduan memulai.

Artefak generik adalah file dalam format apa pun, termasuk, tetapi tidak terbatas pada, hal berikut:

  • File terkompresi, seperti file tar dan file zip
  • File konfigurasi, seperti file YAML dan TOML
  • File teks dan PDF
  • Biner
  • Arsip
  • File media

Tidak seperti format lainnya, artefak yang disimpan di repositori format generik tidak dimaksudkan untuk digunakan oleh Docker, pengelola paket, atau klien pihak ketiga lainnya.

Sebelum memulai

  1. Buat repositori format umum.
  2. Pastikan Anda memiliki izin yang diperlukan untuk repositori.
  3. (Opsional) Mengonfigurasi setelan default untuk perintah Google Cloud CLI.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola artefak generik, minta administrator untuk memberi Anda peran IAM berikut di repositori:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengupload artefak umum

Anda dapat mengupload artefak generik satu per satu berdasarkan file atau secara berganda berdasarkan direktori. Saat mengupload, nama paket dan nomor versi harus ditentukan. Anda juga dapat menentukan jalur di struktur file tujuan untuk mengunggahnya. Jika tidak ada jalur tujuan yang ditentukan, artefak akan diupload ke tingkat root secara default.

Untuk mengupload artefak umum ke repositori, jalankan perintah berikut:

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • PROJECT: project ID Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain
  • LOCATION: lokasi regional atau multi-regional repositori.
  • REPOSITORY: nama repositori tempat artefak disimpan.
  • SOURCE: lokasi dan nama file yang Anda upload.
  • PACKAGE: nama paket file yang Anda upload.
  • VERSION: versi file yang Anda upload.
  • Jalankan perintah berikut:

    Linux, macOS, atau 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
    Ada flag tambahan yang dapat Anda gunakan saat mengupload artefak:
    • --destination-path=PATH untuk diupload ke folder yang ditentukan dalam paket dan versi. Tindakan ini juga akan membuat folder yang tidak ada.
    • --source-directory=SOURCE_DIR untuk mengganti tanda --source dan mengupload direktori, bukan satu file.
    • --skip-existing saat menggunakan flag --source-directory untuk melewati file yang sudah ada. Jika tidak, perintah akan gagal saat mencoba mengupload file yang sudah ada.

    API

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT adalah project ID Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain
    • LOCATION adalah lokasi regional atau multi-regional repositori.
    • REPOSITORY adalah nama repositori tempat artefak disimpan.
    • SOURCE adalah lokasi dan nama file yang Anda upload.
    • PACKAGE adalah nama paket file yang Anda upload.
    • VERSION adalah versi file yang Anda upload.
    • NAME adalah nama baru file di repositori.

    Metode HTTP dan URL:

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

    curl (Linux, macOS, atau Cloud Shell)

    Untuk mengirim permintaan, jalankan perintah berikut:

      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
    

    Mencantumkan artefak

    console

    Anda dapat melihat artefak untuk repositori format umum di konsol Google Cloud.

    1. Buka halaman Repositories di konsol Google Cloud.

      Buka halaman Repositori

    2. Di daftar repositori, pilih repositori.

    3. Klik nama paket.

    4. Untuk melihat file yang dapat didownload untuk semua versi paket, klik tab File.

    5. Untuk melihat file yang dapat didownload untuk versi paket tertentu, klik nama versi, lalu klik tab File.

    gcloud

    Anda dapat mencantumkan artefak di repositori dengan perintah gcloud artifacts files list.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • PROJECT: project ID Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain
    • LOCATION: lokasi regional atau multi-regional repositori.
    • REPOSITORY: nama repositori tempat artefak disimpan.

    Jalankan perintah berikut:

    Linux, macOS, atau 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
    Respons menyertakan detail file dalam format 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
    

    Anda juga dapat mengurutkan menurut versi dan paket dengan menambahkan satu atau kedua flag berikut:

    • --package=PACKAGE untuk hanya menampilkan file paket tertentu.
    • --version=VERSION untuk hanya menampilkan file versi tertentu.

    Mendownload artefak umum

    Untuk mendownload artefak umum dari repositori, jalankan perintah berikut:

    gcloud

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • DESTINATION: jalur ke folder tujuan di sistem file lokal Anda. Folder tujuan harus sudah ada atau perintah akan gagal.
    • LOCATION: lokasi regional atau multi-regional repositori.
    • REPOSITORY: nama repositori tempat artefak disimpan.
    • PACKAGE: paket file yang akan didownload.
    • VERSION: versi file yang akan didownload.
    • NAME (opsional): nama file yang akan didownload. Tanpa tanda ini, perintah akan mendownload semua file untuk paket dan versi yang ditentukan serta membuat direktori yang diperlukan di tujuan.

    Jalankan perintah berikut:

    Linux, macOS, atau 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

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT: project ID Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
    • LOCATION: lokasi regional atau multi-regional repositori.
    • REPOSITORY: nama repositori tempat artefak disimpan.
    • DESTINATION: jalur ke folder tujuan di sistem file lokal Anda. Folder tujuan harus sudah ada atau perintah akan gagal.
    • FILE: nama file yang dienkode URL. Anda dapat menemukan nilai ini dengan menjalankan perintah gcloud artifacts files list dan menyalin nilai untuk FILE. URL harus dikonversi ke format yang dienkode URL untuk perintah ini—misalnya, path/to/file.jar harus dimasukkan sebagai path%2Fto%2Ffile.jar.

    Metode HTTP dan URL:

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

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan segera melihat download dimulai.

    Menghapus artefak generik

    Untuk menghapus artefak umum dari repositori, jalankan perintah gcloud artifacts files delete. Perintah ini hanya tersedia untuk repositori format umum.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • FILE: nama file lengkap. Anda dapat menemukan nilai ini dengan menjalankan perintah gcloud artifacts files list dan menyalin nilai untuk FILE.
    • LOCATION: lokasi regional atau multi-regional repositori.
    • REPOSITORY: nama repositori tempat artefak disimpan.

    Jalankan perintah berikut:

    Linux, macOS, atau 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

    Langkah selanjutnya