How to find all pages that link to a specific attachment?

Tom Birch Hansen January 21, 2014

I have several pages with dublicated attachments. But how do I find out which attachments haven't got any incomming links? In other words how do I find pages that link to a specific attachment?

3 answers

2 votes
Patrice Rompas
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.
January 29, 2014

Hi Tom,

This can't be done through Confluence UI yet. If you have access to the database, you can run this query to find the page/blog that link to specific attachment:

select s.spacename, c.title, c.contenttype from content c inner join spaces s on c.spaceid = s.spaceid where c.contentid in (select contentid from bodycontent where prevver is null and body like '%filename="filename.ext%');

Change the filename.ext to the name of attachment (e.g.: README.txt).

Regards,
Samuel

Tom Birch Hansen February 4, 2014

Thank you for your reply. I do have database access, but the query you suggest will not work as there are likely to be many pages in a space with attachments with same filename, for instance 'readme.txt'.

Also a sql query is not very applicaple for the average confluence users.

Do you know if there is a JIRA request to fix this?

It seems odd that links to attachments are not listed on the 'page information' page, and that you get no warning when deleting a page if there are other pages with links to attachements on the page being deleted.

Like Marina likes this
Helen Gosper May 11, 2016

@Samuel Patrice Rompas [Atlassian]'s reply back in 2014 mentioned this can't be done through Confluence UI yet - is this feature on the Roadmap? It would be very useful to be able to display a list of all the pages in a space that link to a specific attachment - for example, via an 'incoming links' information section, perhaps under 'Properties'.

The use-case would be to see at a glance which pages an image has been used on. This would save time in my situation when updating screenshots in technical documentation. Thanks

Like Marina likes this
0 votes
Ganesh Gautam
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
April 7, 2021

If you are a plugin developer, you can do that in a plugin by using a plugin available bean `linkManager` and its method getReferringContent(). Follow these steps:

ContentEntityObject container = attachment.getContainer();
Collection<ContentEntityObject> referringContent = linkManager.getReferringContent(container);

You can then just look at the current ContentEntityObject's in case you are interested in current objects only and not the old page revisions using:

referringContent
.filter(ContentEntityObject::isCurrent)
.collect(Collectors.toSet())

Happy Coding!

0 votes
Jörg T_ April 17, 2020

It's 2020 now and I am finding this old question while having the same issue. Any news on this?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events