Hello,
Is there a way of deleting ALL attachments from a page?
I'm running 5.4.1, server
In addition to the information above: The Bob Swift's CLI add-on can help to remove a selection of attachments: https://bobswift.atlassian.net/wiki/display/CSOAP/How+to+remove+a+selection+of+attachments
Hello Mick,
There is a feature request to add this functionality to Confluence here. I believe there are some workarounds in the comments there you could try.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Mick,
If you load up the browser console (by pressing F12 or Ctrl/Cmd + Shift + i) and paste the following code in and press Enter, it will delete all attachments from the page you are currently viewing.
var deleteAttachments = function(attachments) { requestObject = []; requestObject.push(attachments[0].ownerId); requestObject.push(attachments[0].fileName); jQuery.ajax({ contentType: 'application/json', type: 'POST', url: '/rpc/json-rpc/confluenceservice-v2/removeAttachment', data: JSON.stringify(requestObject), success: function( response ) { attachments.shift(); if (attachments.length) { deleteAttachments(attachments); } else { console.log("Done!"); } } }); } var getAttachments = function(attachments, startIndex) { var attachments = attachments || []; var startIndex = startIndex || 0; jQuery.ajax({ url: contextPath + "/rest/prototype/1/content/" + AJS.params.pageId + "/attachments.json?start-index=" + startIndex, success: function(response) { attachments.push.apply(attachments, response.attachment); if ( attachments.length < response.size ) { startIndex += 50; getAttachments(attachments, startIndex); } else { deleteAttachments(attachments); } } }); } getAttachments();
This should work for most versions of Confluence, including 5.4.1. It will probably even work for Confluence Cloud.
Note: This doesn't check if you have permission to delete the attachments or not. If not, it won't work.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Stephen, great, thanks for this. I haven't tried it yet, but will get back to you as soon as I have done. Cheers.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For this script to work there is a need to fix escaping that was applied to '<' operator in the if statement
if ( attachments.length < response.size ) { startIndex += 50; getAttachments(attachments, startIndex); } else { deleteAttachments(attachments); }
Expected
if ( attachments.length < response.size ) {
startIndex += 50;
getAttachments(attachments, startIndex);
} else {
deleteAttachments(attachments);
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks @AndrewChuk & @Stephen Deutsch - with the above script this successfully deleted ~60 attachments on Confluence Server 6.13 - saved me having to remove them manually!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
var headers = {
'Authorization': 'Basic <base64credential_Y2hldjoyOUtsdWJuaWthJg>',
'X-Atlassian-Token': 'nocheck'
};
var apiRoot = 'https://confluence.host.net/rest/api';
// page
var containerId = '171607042'
fetch(`${apiRoot}/content/${containerId}/child/attachment`, {headers})
.then(r => r.json())
.then(o => Promise.all(o.results.map(i=>fetch(i._links.self, {method: "DELETE", headers}))))
.then(r => console.log('r', r));
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.