Plugin storing binary or huge data

As stated in this article:

My first problem is, AO does not support BLOBs. What are my options if my plugin needs to store binary data? Convert them to base64 (and suffer the increased size)? Or can a plugin directly connect to the database and create tables and execute statements?

My second problem is AO will throw out of memory or heap space errors if the data stored is too big.

What kind of data are you looking to store? How large is it? The DC products are moving toward storing attachment/avatar data in S3 (or compatible object stores) for example.

The shared home directory is usually where you’d store large files. With Atlassian now moving toward S3 due to customer demand.

Is there a reason you’d prefer it to be in the database, vs on the shared filesystem for example?


At first it is JSON data of my plugin. Then they grew too large and I want to compress them. In one of the testing sites a single ZIP is around 20mb.

When I look for ways for plugin to store data, the first thing I came across was PropertySet. Then I found out about ActiveObjects. After that my data grew in size, and I remembered AO doesn’t do binaries.

Yesterday I also found out about QueryDSL, as AO will attempt to load all the data if I use .find() and cause an OutOfMemory exception as there are a lot of data accumulated.

If I am going to write files into the shared folder, is there a recommendated way on how I do it? Like a recommended folder structure? How do I get the path of the shared folder via Java API? All my searches find things about Jira system configuration but not programming plugins.

And I just got the rug pulled out under me.

SDK’s 3-day license expired, so I restarted the server… some updates happened, and now it is telling me it cannot find the class com.atlassian.activeobjects.external.ActiveObjects.

Even the QuickReload plugin is disabled.
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.xml.NamespaceHandlerSupport not found by com.atlassian.labs.plugins.quickreload [122]

Cleaned twice and it returned to normal. Without me changing any of my files. What the heck happened.