How to compare the size of the asset uploaded with the value from my custom OSGi configuration? | Community
Skip to main content
Level 2
May 17, 2022
Solved

How to compare the size of the asset uploaded with the value from my custom OSGi configuration?

  • May 17, 2022
  • 2 replies
  • 2083 views

I have created an OSGi Config as follows:

I am reading the values like:

Now, what I want to do is I want to compare the size of the asset file uploaded with assetSize value [from OSGi] when activated = true. And if size of asset file > assetSize, then the asset won't get uploaded to DAM and will show a error message.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by SantoshSai

Hi @ac6600 

AssetDetails asset = new AssetDetails(assetResource);
asset.getOriginal.getsize();
if(asset.getSize() < assetSize) {
     // Do Something
}


Asset API: https://developer.adobe.com/experience-manager/reference-materials/6-5/javadoc/com/adobe/granite/asset/api/Asset.html

Rendition API: https://developer.adobe.com/experience-manager/reference-materials/6-5/javadoc/com/day/cq/dam/api/Rendition.html

Hope that helps you!

Regards,

Santosh

2 replies

SantoshSai
Community Advisor
SantoshSaiCommunity AdvisorAccepted solution
Community Advisor
May 17, 2022

Hi @ac6600 

AssetDetails asset = new AssetDetails(assetResource);
asset.getOriginal.getsize();
if(asset.getSize() < assetSize) {
     // Do Something
}


Asset API: https://developer.adobe.com/experience-manager/reference-materials/6-5/javadoc/com/adobe/granite/asset/api/Asset.html

Rendition API: https://developer.adobe.com/experience-manager/reference-materials/6-5/javadoc/com/day/cq/dam/api/Rendition.html

Hope that helps you!

Regards,

Santosh

Santosh Sai
ac6600Author
Level 2
May 17, 2022

I tried with this snippet but getting this:

Do I need to import anything? @santoshsai 

SantoshSai
Community Advisor
Community Advisor
May 17, 2022

Hi @ac6600 

Tried in Servlet

 

import com.day.cq.dam.api.Asset;

 
Regards,
Santosh

Santosh Sai
joerghoh
Adobe Employee
Adobe Employee
May 18, 2022

The problem is that you need to hook into the asset upload process itself somehow. At best in a way, that terminates the request as soon as it crosses the configured value in the request body's size.

 

In AEM 6.x I don't think that there is a public API for it, and in AEM CS it is not possible at all, because the upload itself does not happen via the JVM at all.

The best way is either to restrict the frontend to prevent selecting larger assets to handle the cases when they are already uploaded.