Hi All,
I am using createAsset Api to create asset in asset server.If I want to update asset content (I am uplaoding pdfs) file is not updating. How to achieve file update with assetmanager API.
Any help much appreaciated.
AssetManager manager = resourceResolver.adaptTo(AssetManager.class);
Asset createAsset(String path, InputStream is, String mimeType, boolean doSave)
Thanks!
Solved! Go to Solution.
Views
Replies
Total Likes
You can also use the ASSETS HTTP API directly to update the asset meta data
e.g
URL - http://localhost:4502/api/assets/test/test-api.pdf (test is the parent folder under /content/dam)
Method - PUT
Content-Type - application/json
Sample Payload - {"properties":{"metadata":{"jcr:description":"test3","jcr:title":"test 2"}}}
Add the Basic authentication details
Reference - https://docs.adobe.com/content/help/en/experience-manager-65/assets/extending/mac-api-assets.html
Sample request through postman
Regards
Albin I
The below article gives you clear information on how to create Asset and updating the Asset.
In the above github codebase, check "saveMigrationInfo" method to update asset
Can I use the Asset HTTP API to link "Related" assets?
More details on Related Asset:
https://experienceleague.adobe.com/docs/experience-manager-65/assets/managing/related-assets.html?la...
Technically,
Related assets Admin UI, creates node "related" next to "metadata" when you link using asset admin UI.
I tried sending following JSON with Update Asset Metadata API Call, I'm getting 403 status code.
{"class":"asset","properties":{"metadata":{"cq:tags":["keywords:Cambridge"]},"related":{"others":{"sling:members":["/content/dam/test/files/test.pdf"]}}}}
How to update the "related asset?".
Thank you!
Views
Replies
Total Likes
You can also use the ASSETS HTTP API directly to update the asset meta data
e.g
URL - http://localhost:4502/api/assets/test/test-api.pdf (test is the parent folder under /content/dam)
Method - PUT
Content-Type - application/json
Sample Payload - {"properties":{"metadata":{"jcr:description":"test3","jcr:title":"test 2"}}}
Add the Basic authentication details
Reference - https://docs.adobe.com/content/help/en/experience-manager-65/assets/extending/mac-api-assets.html
Sample request through postman
Regards
Albin I
Hi,
Can Asset API be used with more secured method like Outh2.0?
Views
Replies
Total Likes
If I am able to understand correctly, you want to replace the existing PDF file with new PDF file OR you want to update metadata like tags, title etc?
Thanks,
Nupur
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Replies
Total Likes
@arunaaems506124 There is no separate method for updating an asset, it is basically the same createAsset Method which you use to update the existing asset. If you read the java docs more clearly you can read the below
Asset createAsset(String path, InputStream is, String mimeType, boolean doSave)
//if skip then we only create asset if it doesn't exist
if (r.getResource(assetPath) == null) {
createAsset(source, assetPath, r, false);
}
Hope this helps
Veena ✌
You can use the Asset Interface to achieve the same.
// to create an asset AssetManager assetManager = resolver.adaptTo(AssetManager.class); Asset newAsset = assetManager.createAsset("/path/to/asset/document.pdf");
The following docs may be helpful:
The latter one states:
Creates a new Asset at the given path. If an asset already exists at the given path, its original rendition is updated instead of creating a new asset. If inputStream is null new Asset is created without original rendition. If an asset already exists at given path and inputstream is null, original rendition is not updated.
I think that your Input Stream is null, due to which the original rendition is not getting updated.
Input Stream is the input stream of the new asset's original binary.
You can also achieve the same using Assets HTTP API, as follows:
Hope these help !!
Views
Replies
Total Likes
Views
Likes
Replies