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.
Solved! Go to Solution.
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.
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...
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.