Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Create CSV file programmatically as DAM asset

Avatar

Level 3

Hi All,

I am working on a requirement where we need to create a CSV file from SQL database and save the file in DAM location. In order to create the CSV file in DAM location I am unsing AssetManager.createAsset("/content/dam/../..test.csv", is, "text/csv", true).

The issue that I am facing here is inorder to create asset we need an InputStream object, so I am first creating a File object and then using CSVWriter to create a CSV in another location and then converting that File object to InputStream like this ::InputStream is = new FileInputStream(csvFile);

Can someone please suggest me an approach where I can create the CSV file directly in DAM location.

1 Accepted Solution

Avatar

Correct answer by
Level 10

Create an AEM Java service that creates a CSV file and then use the Asset Manager API or JCR NODE API to place the asset into the DAM location. Java CSV - java code samples

View solution in original post

7 Replies

Avatar

Level 3

Thanks for the reply. I have checked this, but this is slightly different from my requirement, I just want to create a .csv file programmatically  and place it in DAM. This file will then be pushed to another server to other uses.

Avatar

Level 2
@smrithi_govind , I'm working on similar requirement. Facing the same issue as yours. Did you find any solution to this?

Avatar

Level 9

You can find so many examples to create csv and for uploading to dam refer to the last servlet part in this example https://helpx.adobe.com/experience-manager/using/uploading-files-aem1.html

Avatar

Level 9

See this example to create CSV. Change the query according to your requirement if you want users, assets or pages to be exported in csv. https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/bundle/src/main/java/com/ad...

Avatar

Correct answer by
Level 10

Create an AEM Java service that creates a CSV file and then use the Asset Manager API or JCR NODE API to place the asset into the DAM location. Java CSV - java code samples

Avatar

Level 1

I am facing same issue. looks like there is no direct way to convert file writer to input stream.. as AssetManager.createAsset() method takes inputstream as parameter so first we need to create file from csvwriter and again read that file via inputstream and pass it to AssetManagerAPI to place it on DAM.