I think you want to change either:
https://github.com/jenkinsci/azure-artifact-manager-plugin/blob/master/src/main/java/com/microsoft/jenkins/artifactmanager/AzureBlobVirtualFile.java#L178-L185

or

https://github.com/jenkinsci/azure-artifact-manager-plugin/blob/7989b9c6a1c504f52ef80a80a5f2c89bccb78c61/src/main/java/com/microsoft/jenkins/artifactmanager/AzureBlobVirtualFile.java#L197

It would help if you sent a branch with that you've tried or at least a
diff.

On Fri, 12 Aug 2022 at 00:38, 'Ian Boudreaux' via Jenkins Developers <
[email protected]> wrote:

> Hi all,
>
> I am trying to update the Azure Artifact manager plugin
> <https://plugins.jenkins.io/azure-artifact-manager/> to be capable of
> using an Azure content delivery network (CDN) link for the produced
> artifacts available through Jenkins instead of the direct Azure blob
> storage links. The reason I am doing this is because downloads from the
> blob storage directly are throttled and downloads from the CDN are
> considerably faster, especially for geographically distributed users.
>
> This is also my first time trying to modify a Jenkins plugin, so I do
> acknowledge a lack of knowledge in general Jenkins plugin development. That
> being said, I've been investigating the Azure Artifact Manager source code
> for a couple days and I've determined this:
>
>    1. toExternalURL in the AzureBlobVirtualFile class
>    
> <https://github.com/jenkinsci/azure-artifact-manager-plugin/blob/master/src/main/java/com/microsoft/jenkins/artifactmanager/AzureBlobVirtualFile.java#L189>,
>    seems to be what determines the final link that users would see in Jenkins
>    to click upon that would download the blob artifact from the CDN. I removed
>    the "sas" variable from this URL and confirmed that the generated URL in
>    Jenkins that a user sees was missing the shared access signature and thus
>    inaccessible, so this confirmed it for me.
>    2. I also know that, eventually, I would need to update the Azure
>    storage plugin <https://plugins.jenkins.io/windows-azure-storage/> to
>    take in a CDN URL through the Jenkins Azure Storage credential, do
>    validation on that URL, and then pass that URL into the Azure Artifact
>    Manager plugin
>
> That being said, the first problem I am having is finding a way to
> manually change the external URL in the Azure Artifact Manager so that it
> uses the CDN URL instead of the blob storage URL to prove this is possible
> before I dive deeper into the Azure storage plugin and passing the
> credential around.
>
> I've tried modifying the toExternalUrl method in the AzureBlobVirtualFile
> class by replacing the blob storage endpoint URL string with a manually
> input string of my CDN endpoint URL, but no matter what I try (except
> removing the '"sas" variable) I get a NullPointerException when trying to
> change the external URL string to anything other than a string that points
> to the blob storage endpoint URL:
>
>    - java.lang.NullPointerException
>       - at
>       
> com.microsoftopentechnologies.windowsazurestorage.helper.AzureStorageAccount.convertToStorageAccountInfo(AzureStorageAccount.java:254)
>       - at
>       
> com.microsoft.jenkins.artifactmanager.Utils.getStorageAccount(Utils.java:90)
>       - at
>       
> com.microsoft.jenkins.artifactmanager.AzureArtifactManager.archive(AzureArtifactManager.java:123)
>       - at
>       hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:258)
>
> Does anyone have any ideas on where to go from here? All I really need to
> do is swap the endpoint URL link at the very end of the artifact archiving
> process so that the artifact link that shows in Jenkins points to the CDN
> URL instead of the blob storage URL.
>
> Thanks!
> Ian
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/432a78bf-c750-455b-aa5c-d1d01c09f3b9n%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/432a78bf-c750-455b-aa5c-d1d01c09f3b9n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAH-3Bif_9bp-t6N2Lr_RjD%3Dr-1Vt1JhN7xa5xj_JJFLUBU8eew%40mail.gmail.com.

Reply via email to