Is there anyway to manually cache remote artifacts in Artifactory? - artifactory

I am playing with a brand new OOS artifactory installation. I have a remote repository for jcenter. I am looking for a way to manually cache remote artifacts to jcenter-cach with artifactory web UI. I appreciate any help.
Edit remote Repository
Repository Brower

When your build is resolving artifacts from artifactory , Artifactory will cache artifacts that were requested from remote repositories.
But since you are looking for a way to do this manually with Artifactory Web UI , it can be don't even though it is little bit tricky.( NB: Remote Web search capability should be enabled in your Artifactory instance). Here are the steps to do so:-
Click Artifacts tab
Select Remote Search (this will open a window for search artifacts from bintray’s remote jcenter repository )
Find the artifact you wants to cache
When you find the artifact, click it , a pop up will appear and select Download.
This will download the file to your local machine and at the same time it will trigger Artifactory to catch the same artifact to remote cache.
NB: Be advised that caching artifacts may take a while depending on the file size or internet connection speed.

Related

Artifactory to Artifactory remote repos

i have 2 Artifactory server and have configured ubuntu repos.
One off the artifactorys goes to internet to ubuntu and the other
artifactory connects to the artifactory with internet access.
I have the following problem. From my local artifactory i get always the error 404.
I cant fetch the metafile (Packages) from the ubuntu repo.
But if i reconfigure my remote repo and set --> store artifacts locally all seems fine.
I want store the artifacts locally. My local artifactory should ask the artifactory with internet access and should get all files from the remote artifactory.
Have anyone a idea how to solve my problem?
best regards
I assume you are trying to set up a smart remote repository with Artifactory. Refer to this wiki and set up the smart remote repository, basically, you should be adding the URL in your local Artifactory's remote repository as http://ARTIFACTORY_URL/ubuntu-remote/ and make sure the "store artifacts locally"is checked so that this remote repository can able to index the artifacts.

Can cached artifacts in a Artifactory remote repository be made immutable

I have set up a remote docker repository that caches a docker registry. I have pulled a docker image via a tag from the Artifactory remote, and the layers are now in the Artifactory cache. If the tag is modified in the origin registry, will a subsequent pull from the remote get the new layers? Is there any cache configuration to make the tags in the remote immutable?
Likewise, how can remote repositories for other package types be made immutable?
Yes, if the remote tag is modified then the updated image will be pulled into the local cache next time it’s requested from Artifactory. The only way I can think of to stop this is to set the remote repository offline in Artifactory.

I am trying to connect a local artifactory running on a laptop in docker to a remote artifactory on AWS behind an ELB

I have set up Artifactory OSS Version 6.9.1 on an AWS instance behind an ELB and have been successfully deploying builds to it from GitLab CI/CD. I am now trying to set up a local Artifactory OSS Version 6.10.0 on my laptop so that I can develop builds locally before sharing with the team.
My local artifactory connects perfectly to JCentre and I can browse that repository.
My gradle build will happily connect to the AWS hosted artifactory at http://{URL}/artifactory and resolve my dependencies.
When I connect a remote repository with http://"{URL}/artifactory I get a 500 Internal Error message on Test. If I take off the /artifactory it says it has connected successfully but when I try to browse the remote repo it is empty.
I read Connect one Artifactory to another Artifactory and followed the instructions to edit the json configuration and make the remote repository a smart repository here https://www.jfrog.com/confluence/display/RTF/Smart+Remote+Repositories.
It now has the smart repository image but still cannot be browsed.
Gradle still cannot resolve dependencies with the local artifactory using the remote-repo name.
As stated in the Smart Remote Repository documentation, you should configure the remote repository URL with the following structure:
http://ARTIFACTORY_URL/api/package-type/repository-key
So if you have a Gradle repository named "gradle-test", the URL should be:
http://ARTIFACTORY_URL/api/gradle/gradle-test
Hope this helps.
In the end it turned out to be ridiculously simple. When setting up the remote repository the key needs to be in the url as well as the key field.
So for a repo with a repository key 'fractal' the connection URL is counter-intuitively http:///artifactory/fractal

JFrog Artifactory remote Docker repository items not cached

I have a remote docker repository pointed at another JFrog Artifactory instance that I manage. I can see Docker images in both the original Artifactory repository and in the UI of the remote repository, but when I click on the manifest for the images, it says "this item is not cached" and I cannot pull the image from the remote repo. Is there a configuration item that I need to set to make sure the images get cached properly?
There is a setting "Store Artifacts Locally" in the Advanced Remote Repositories Settings. Check if it is selected.

How to clone JFrog Artifactory into a local installation of JFrog Artifactory?

I have JFrog Artifactory http://organization.com/artifactory/ with read access. I can download individual artifacts let's say gulp-git-2.8.0.tgz using native browser.
Now, I have created local JFrog Artifactory http://localhost.com:8081/artifactory/ in machine and it does not have any artifacts.
I am trying to fetch my organizations artifacts lets say of npm package http://organization.com/artifactory/npm/ into my local artifactory http://localhost:8081/artifactory/npm/
Since it has many artifacts and I cannot do it manually of download from organization server and deploying it to my local server.
Is there anyway that I can fetch only the required package let's say npm to my local server? Or is there anyway to replicate my organization's package using read access into my local server?
Thanks in advance.
If you have Admin permissions to the source Artifactory you can setup Push replication or to perform a Repository Export.
Without Admin permissions, you can:
Setup Pull Replication.
Use the JFrog CLI in order to download entire repository content, and then upload it in the same structure.

Resources