Information about disc space used by different spaces

Christoph Hirzberger October 7, 2012

Hi!

I need to know how much disc space is used by each Confluence space.

Is there any functionality or plugin I can use?

greets

Chris

2 answers

1 accepted

6 votes
Answer accepted
Matthew J. Horn
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 8, 2012

If you're primarily concered with attachment size, you can loop over all the pages in a space and get the attachment size for them. Similarly, you can get a page count. With some simple extrapolation, you could make a reasonable guess at how much "disk space" each space is using.

Here's the macro I use, which is based on one by Andrew Frayling:

## Macro title: Space Meta Data 2
## Macro has a body: Y or N (N)
## Body processing: Selected body processing option
## Output: Selected output option
##
## Developed by: Matthew Horn, based on Space Meta Data by Andrew Frayling
## Date created: 06/07/2012
## Installed by: <your name>
## Macro to display information such as number of pages, number of blog posts, attachment size, etc. about a named Space. 
## @param TargetSpace:title=Target space|type=string|desc=Enter the KEY of the space you want metadata for. For example, coredoc, gscontent, samples, wncontent|required=true|multiple=false
## Get space details
#set ( $targetSpace = $spaceManager.getSpace($paramTargetSpace) )
#set ( $spaceName = $targetSpace.getName() )
#set ( $spaceKey = $targetSpace.getKey() )
#set ( $spaceHome = $targetSpace.getHomePage() )
#set ( $spaceCreator = $targetSpace.getCreatorName() )
#set ( $spaceCreationDate = $targetSpace.getCreationDate() )
#set ( $spaceDescription = $targetSpace.getDescription() )
#set ( $pageCount = $spaceManager.findPageTotal($targetSpace) )
#set ( $blogCount = $spaceManager.getNumberOfBlogPosts($targetSpace) )

## Get all pages in the current Space
#set ( $allPagesInSpace = $pageManager.getPages($targetSpace, true) )
## Reset total attachment file size
#set ( $totalAttachmentFileSizeForSpace = 0 )
## Reset total number of attachments
#set ( $totalAttachmentCount = 0 )
## Loop through all pages in the current Space
#foreach ($page in $allPagesInSpace)
  ## reset the attachment count for each page
  #set ( $pageAttachmentCount = 0 )
  ## reset the attachment file size total for each page
  #set ( $totalFileSizePerPage = 0 )
  ## get the attachments for each page
  #set ( $allAttachments = $page.getAttachments() )
  ## Loop through each attachment
  #foreach ($attachment in $allAttachments)
    ## Increment the attachment count for the page
   #set ( $pageAttachmentCount = $pageAttachmentCount + 1 )
    ## Sum the size of the attachments on the page
    #set ( $totalFileSizePerPage = $totalFileSizePerPage + $attachment.getFileSize() )
  #end
  ## End looping through attachments
  ## Increment total attachment count for the current Space
  #set ( $totalAttachmentCount = $totalAttachmentCount + $pageAttachmentCount )
  ## Sum the total size of attachments for the current Space
  #set ( $totalAttachmentFileSizeForSpace = $totalAttachmentFileSizeForSpace + $totalFileSizePerPage )
#end
## End looping through pages

## Convert attachment size to MBs
#set ( $attachmentSizeMb = ($totalAttachmentFileSizeForSpace / 1024.00) / 1024.00 )

## Display Space Details
<table class="confluenceTable">
  <tbody>
    <tr>
      <th class="confluenceTh">Name</th>
      <td class="confluenceTd">$spaceName</td>
    </tr>
    <tr>
      <th class="confluenceTh">Key</th>
      <td class="confluenceTd">$spaceKey</td>
    </tr>
    <tr>
      <th class="confluenceTh">Description</th>
      <td class="confluenceTd">$spaceDescription.getBodyAsString()</td>
    </tr>
    <tr>
      <th class="confluenceTh">Home Page</th>
      <td class="confluenceTd">#contentLink2($spaceHome true false)</td>
    </tr>
    <tr>
      <th class="confluenceTh">Created By</th>
      <td class="confluenceTd">#usernameLink($spaceCreator) ($action.dateFormatter.formatDateTime($spaceCreationDate))</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Pages</th>
      <td class="confluenceTd">$pageCount</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Blog Posts</th>
      <td class="confluenceTd">$blogCount</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Attachments</th>
      <td class="confluenceTd">$totalAttachmentCount (including all versions)</td>
    </tr>
    <tr>
      <th class="confluenceTh">Total Size of Attachments</th>
      <td class="confluenceTd">$attachmentSizeMb MB</td>
    </tr>
  </tbody>
</table>

0 votes
Alejandro Conde Carrillo
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 8, 2012

As all content of the spaces is stored in the database, there is not an easy answer for this quesition as the information for all spaces is stored in the same tables.

If you are storing attachments in your filesystem, you can check all attachments for an space in the folder named as teh space id. You can find more information on the attachments file structure in Hierarchical File System Attachment Storage.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events