Artifactory: Mengonversi repo jarak jauh ke repo lokal

Majikan saya telah menyalahgunakan Bintray sebagai tempat penyimpanan biner kami selama beberapa waktu. Kami akhirnya pindah ke Artifactory dan menutup Bintray. Namun tampaknya ini merupakan tugas yang hampir mustahil. Tidak ada cara mengekspor repo Bintray ke zip. Mengunduh repo berarti mengunduh setiap file secara manual dari UI atau melalui API mereka. Saya telah mencoba dua pendekatan untuk otomatisasi:

1) wget untuk merayapi bintray kami seperti ini: wget -e robots=off -o ~/wget.log -w 1 -m -np --user --password "https://.bintray.com" yang menghasilkan semua file dalam repo. Tapi ini hanya menyelesaikan separuh masalah. Saya tidak dapat menemukan cara mengimpor file ke repositori dalam artifaktori (semua repo masing-masing berukuran lebih dari 100mbs dan oleh karena itu tidak dapat diunggah, karena alasan tertentu).

2) Saya mengatur repo Bintray sebagai repositori jarak jauh dan mengaktifkan Replikasi Aktif. Tampaknya hal itu berhasil untuk saat ini. Tapi saya tidak tahu apakah itu akan dihapus ketika akun Bintray dipindahkan atau bahkan disimpan di Artifactory. Oleh karena itu saya ingin mengubah repo jarak jauh menjadi repo lokal, untuk memastikan bahwa repo tersebut disimpan secara permanen di artefak, apakah ada cara untuk melakukan ini? Jika ya, bagaimana caranya?


person kschnack    schedule 30.06.2017    source sumber


Jawaban (1)


Saya akan mencoba menjawab kedua pertanyaan Anda di bawah ini.

  1. Apa maksudnya Anda tidak dapat mengunggah lebih dari 100MB? Versi Artifactory manakah yang Anda gunakan? Instalasi lokal atau berbasis SaaS? Bagaimana Anda mencoba mengunggah file Anda ke Artifactory? Sudahkah Anda mencoba mengimpor konten dengan menggunakan fitur impor Artifactory? (Admin --> Impor&Ekspor --> Impor repositori) Sepertinya Anda menggunakan UI untuk mengunggah, dan jika demikian, Anda dapat mengonfigurasi ukuran unggahan maksimal di Admin --> halaman Konfigurasi Umum.
  2. Jika maksud Anda semua konten dari Bintray di-cache di cache repositori jarak jauh di Artifactory, cukup gunakan opsi "Salin" atau "Pindahkan" dan pindahkan konten ke repositori lokal. Ini akan memastikan bahwa semua konten disimpan secara lokal.
person Ariel    schedule 02.07.2017
comment
Sekadar memperjelas, operasi penyalinan/pemindahan adalah penyalinan/pemindahan yang murah karena tidak ada konten sebenarnya yang ditransfer tetapi hanya petunjuk di database. Untuk menyalin/memindahkan konten cukup telusuri ke browser pohon di UI Artifactory dan klik kanan pada cache repositori jarak jauh --› Salin/Pindahkan. - person Ariel; 02.07.2017
comment
Artinya ketika Anda memiliki repo jarak jauh, dan Anda mencoba memigrasikannya ke repo lokal, repo tersebut hanya akan memigrasikan barang-barang yang ada di cache repo jarak jauh? (Sepertinya normal bagi saya tetapi tidak yakin) - person lvthillo; 18.09.2017
comment
tepatnya, Artifactory tidak dapat memindahkan konten yang tidak dimilikinya. Jadi itu hanya akan memindahkan artefak yang di-cache. - person Ariel; 18.09.2017
comment
Terima kasih, kami memiliki Artifactory OSS dan Artifactory PRO, kami perlu memigrasikan repo lokal dari oss, tetapi kami tidak dapat mendorong repo lokal ke repo lokal di Artifactory PRO kami karena itu OSS (tidak memiliki fitur itu). Kami hanya dapat menarik (pada PRO) tetapi ini hanya mungkin untuk repositori jarak jauh. Jadi tidak mungkin menggunakan solusi itu dan setelah itu memindahkan repositori jarak jauh kami di Artifactory PRO ke repositori lokal? - person lvthillo; 18.09.2017
comment
Saya tahu fitur impor/ekspor tetapi repo perlu disinkronkan hingga migrasi penuh beberapa pekerjaan jenkins juga selesai. - person lvthillo; 18.09.2017
comment
Anda dapat menggunakan opsi pencadangan tambahan dan hanya mengimpor repositori yang diubah ke instance baru. Artinya, jalankan proses pencadangan dengan opsi tambahan, setelah selesai, impor data ke instance baru, setelah impor penuh selesai, jalankan lagi tambahan, dan impor repositori yang diubah. Apakah itu masuk akal? - person Ariel; 18.09.2017
comment
@Ariels, terima kasih begitu, ini bukan fitur impor/ekspor sebenarnya tetapi benar-benar cadangan. Saya sebenarnya memiliki satu repositori besar yang berisi banyak repo. Mungkin bukan pendekatan yang tepat, tapi ini berarti pertama kali seluruh repo dicadangkan dan kedua kalinya hanya paket baru yang sekarang ada di dalam repo itu? Secara otomatis atau hanya berfungsi pada tingkat repositori? - person lvthillo; 19.09.2017
comment
yang akan kita miliki adalah: satu repo dengan 100 subfolder dan paket berbeda. Kami akan memigrasikan repo tersebut, mengadaptasi pekerjaan jenkins untuk 5 dari 100 subfolder, sehingga 5 di antaranya akan berisi paket baru, yang lainnya masih dibuat di repo lama. Kemudian kami akan memindahkan status terkini dari 5 paket lainnya dan sekali lagi mengadaptasi beberapa pekerjaan Jenkins untuk diterapkan pada repo baru ini, bukan pada repo lama. Jadi kita memang memerlukan tambahan impor baru + mempertahankan paket-paket baru yang dibuat di repo baru. - person lvthillo; 19.09.2017
comment
Ya. itulah arti dari inkremental. Jika cara tersebut menyelesaikan pertanyaan Anda, pertimbangkan untuk menandai jawaban tersebut sebagai jawaban yang benar sehingga orang lain akan mengetahui bahwa jawaban tersebut berhasil untuk Anda. - person Ariel; 19.09.2017
comment
Saya telah membuat ulang skenario ini. Satu-satunya masalah adalah: Saya menerapkan ulang artefak yang ada di Artifactory baru kami. Ketika saya melakukan impor baru dari cadangan tambahan kami dari yang lama di artefak baru saya, artefak yang telah dipindahkan ini akan ditimpa kembali ke konten dari Artifactory lama kami. Tampaknya tidak memeriksa checksum tetapi hanya pada nama file? (contoh: konten baru untuk text1.txt di Artifactory tetapi file ini ada dengan konten lain di Artifactory lama, menjalankan impor baru = konten lama text1.txt kembali di Artifactory baru kami - checksumnya berbeda). - person lvthillo; 27.09.2017