Overview
The Amazon S3 Utilities Plug-in leverages the Amazon AWS Java API to connect with Amazon S3 to store and retrieve files.
Key Features & Functionality
The following smart services are included:
The plug-in also includes a function:
Amazon S3 Utilities supports the following Amazon S3 features:
Note: The plug-in requires Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files when using client side encryption.
(https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)
The Appian Secure Credential Store is leveraged for the credentials to integrate with Amazon S3. Before executing the plug-in, create an new secure credential store with the following 3 attributes. These values are obtained from Amazon AWS IAM console.
Hi Mike,
Thanks for sharing this plugin. We are using plug in to get the documents and display in appian. We are using links(S3URL) for users to download the documents. Looks like currently URL is expiring in 5000 milliseconds. I think time is very short for the user to navigate to download. To overcome this sceanario we used a!refresh function but still the life of the url is short. We have around 10+ docs and URLs need to available for the user to downlaod the pdf;s Please let me know whether any option is increase the expTimeMillis to 5 mins or can we pass expTimeMillis as a parameter to the plugin. Thanks in advance for your help.
@baratc can u add ur inputs on how have to implemented webapi
Hi Barat, how you had called the WEPAPI from interface which will download the document in single click?
Not sure if that is possible, you may got some help on S3 forums. Since the web api response is a redirect, the extra headers don't do anything.
Thank Mike ! I am able to download file now...but one more challenge i am facing is that I need to rename the file which is being getting download from presigned URL.I try to add extra header
Content-Disposition: attachment; filename="test.txt"But it is not workingAny suggestion ?
Why are you linking to an integration object? The link needs to be to the web api, otherwise the integration object runs and generates the link once - the web api never reevaluates again.
You need a link to the web api with a doc id as param, and a redirect and the URL in the Location header.
Some helpful background reading: en.wikipedia.org/.../HTTP_302
Mike Cichy jeank0002 baratc Iana Bakalova I am facing the same issue ,link is working fine for the first time but after that ,link is giving timeout error....I have generated presigned URL in web api and that web api is being called from interface in safelink .My requirement is to allow user to download document any number of time...link should be available all the time.Could you please help here. and code sample ?
The integration object is not needed. On your interface you render links to the web api. The web api object NEEDS TO check security first, then redirect the user.
Mike Cichy jeank0002 baratc Iana Bakalova
Can you please help me out? How you had implemented this using the WebAPI.
When I test the interface and immediately click on the link, then it works fine, and after that, it's giving me a timeout error. I am not sure If I had implemented it correctly. Can you please guide me on what I am doing wrong here? I had provided sample screenshots of the work for the reference
Here is the interface code:
Integration:
WebAPI:
Thanks Mike. Appreciate your help.. We implemented and its working as expected. Thanks again .Have a good day!
baratc I don't have documentation explaining this in detail, but in the plugin description there is a line "It can be used in a WebAPI object to redirect a user from Appian to a resource on S3". That is exactly what you need to do. As you experienced, you cannot generate an S3 link and directly put it on the form as it will expire inside 5s. What you need is a WebAPI that will take in a doc id, validate user access, generate the AWS link and respond with a 302 (redirect). You can then put static links to the web api on your form.