ARTIFACTORY: How to list all of the repositories and show the total storage of each of them

ARTIFACTORY: How to list all of the repositories and show the total storage of each of them

AuthorFullName__c
Yonatan Hen
articleNumber
000005709
ft:sourceType
Salesforce
FirstPublishedDate
2023-05-04T07:50:29Z
lastModifiedDate
2023-05-03
VersionNumber
5

The following Python script maps all of the repositories and the storage they used, using the  Get Storage Summary Info REST API command, and finally exports the data to a CSV file:

import requests
import json
from collections import defaultdict
import csv
​
artifactory_hostname = "<hostname>"
​
URL = "http://{}/artifactory/api/storageinfo".format(artifactory_hostname)
headers = { "Content-Type" : "text/plain" }
payload = 'items.find().include("repo", "size")'
​
​
response = requests.get(URL, auth=('<username>', '<password>'))
​
results = json.loads(response.text)
​
repoStorage = {}
​
​
for repo in results['repositoriesSummaryList']:
       repoStorage[repo['repoKey']] = repo['usedSpaceInBytes']
​
# Open the file in write mode
with open('output.csv', 'w', newline='') as csvfile:
   # Create a CSV writer object
   writer = csv.DictWriter(csvfile, fieldnames=["repo", "size"])
​
   # Write the headers to the CSV file
   writer.writeheader()
​
   # Write the data to the CSV file
   for repo, size in repoStorage.items():
       writer.writerow({"repo": repo, "size": "{} bytes".format(size)})
       print({"repo": repo, "size": size})

As an illustration, the outcomes could be shown as follows:

User-added image

*You should modify the following fields in the script: username, password, and artifactory_host.

Please note that the size represented is not the binary size but the size of the artifacts.

You may refer to the checksum-based storage documentation for more information.