Replace Confluence attachment via command line

Deleted user November 18, 2013

I have a swag of attachments (pngs) that I need to replace throughout a Confluence instance. These files are matched on filename. I can match a file invidiually, running getAttachmentList --regex "<filename>" gives me a match, but then what?

I wasn't able to get --common '-a addAttachment --file "filepath"' to then replace those files.

Anyone tried replacing image attachments en masse and had much luck?

2 answers

1 accepted

1 vote
Answer accepted
Deleted user November 20, 2013

Bingo!

Here's the command for anyone that wishes to do the same thing:

confluence -a runFromAttachmentList --space theSpace --regex "theimage.png" --common "-a addAttachment --space @space@ --title \"@title@\" --comment \"inserted via command line\" --file \"C:\filepath\image.png\" "

From here on in, batching is just a matter of mapping the parameters for the replacement files. You could also increase the scope of files with different parameters for the runFromAttachmentList, such as broadening the regex scope.

Thanks very much for your help Bob! (^_^)

1 vote
Bob Swift OSS (Bob Swift Atlassian Apps)
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.
November 18, 2013

You would need to use runFromAttachmentList which is similar to getAttachmentList, but it will run an action for each attachment found. Variable replacements would provide the necessary parameters for the addAttachment action.

Deleted user November 19, 2013

Thanks for that Bob.

Just an additional query, when I run the command:

confluence -a runFromAttachmentList --space thespace --regex "image.png" --common "-a addAttachment --space @space@ --title "@title@" --comment 'inserted via command line' --file "C:\filepath\image.png"" --simulate

I get:
Simulate: -a addAttachment --space thespace --title Image Title --comment 'inserted via command line' --file C:\filepath\image.png

Run completed successfully. 1 actions were successful

But when I run the same command without the simulate, I get:

Error: Unexpected argument: Title
Error: Unexpected argument: via
Error: Unexpected argument: command
Error: Unexpected argument: line'

I've tried with both quotes and apostraphes, but still no dice. Is it a glaring mistake somewhere I'm not seeing?

Bob Swift OSS (Bob Swift Atlassian Apps)
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.
November 19, 2013

You have quotes within quotes that need to be handled - see the quoting section of Tips

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events