In this article
You can use this Snap to generate a presigned URL in the output document to access an S3 object. You can use the presigned URL in external applications to read or write S3 objects, for example, Postman, REST Get Snap, and REST Put Snap.
The Snap may produce a presigned URL without any error if Snap properties contain invalid values, and this may cause the external application to fail. |
The S3 Presigned Snap is a Read-type Snap.
None.
Works in Ultra Pipelines.
None.
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps |
---|---|---|---|
Input | Document |
|
|
Output | Document |
|
|
Error | Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter when running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab:
Learn more about Error handling in Pipelines. |
|
Field Name | Field Type | Description | |
---|---|---|---|
Label* Default Value: S3 Presigned | String | Specify a unique name for the Snap. | |
Bucket*
Default Value: None
| String/Expression/Suggestion | Specify the S3 bucket name, from where you need to fetch or post the presigned URL.
Note: When you enter an incorrect region name, but the bucket name is valid, the AWS S3 service may successfully access the bucket without any error.
Note: When you enter an incorrect region name, but the bucket name is valid, the AWS S3 service may successfully access the bucket without any error. | |
Object Key Default Value: [None]
| String/Expression/Suggestion | Specify or select the S3 object key name, which may include one or more forward-slash '/' characters. The forward-slash character is part of the S3 object key name, and there is no folder object defined in AWS S3. The Snap uses the existing Object Key value as a prefix to produce the suggested list. The maximum length of the suggested list is 1,000. The forward-slash character is part of the S3 object key name, and there is no folder object defined in AWS S3. The Snap uses the existing Object Key value as a prefix to produce the suggested list. The maximum length of the suggested list is 1,000. | |
Expire in (seconds) Default Value: 3600 | Integer/Expression | Specify the time in seconds at which the generated presigned URL will expire. Min: 1 | |
HTTP Method Default Value: GET | String/Expression | Specify the HTTP method verb to use for the presigned URL. The supported methods are GET and PUT. | |
Snap Execution Default Value: | Dropdown list | Select one of the three modes in which the Snap executes. Available options are:
|
This example Pipeline demonstrates how to generate a presigned URL to get an S3 object.
Prerequisites: A valid AWS S3 Account
Configure the S3 Download Snap to download the tmp/hello.json object from the mrtest Bucket.
Validate the Pipeline. The output displays the details of the downloaded object from S3 in binary format.
Next, configure the Mapper Snap to transform the binary content message to a string value.
Configure an S3 Presigned Snap to generate a presigned URL to access the tmp/hello.json object using the GET HTTP Method. The validated output displays the generated pre-signed URL.
Configure the REST Get Snap to send the HTTP Get request (the presigned URL).
Validate the REST GET Snap. The output verifies the creation of the S3 object.
This example demonstrates how to generate a presigned URL using HTTP PUT and GET methods.
Configure an S3 Presigned Snap as follows with the PUT HTTP Method.
Validate the Snap—it generates a presignedUrl as highlighted in the following image:
Next, configure the Mapper Snap to pass the message and presignedUrl as inputs to the file that is to be written.
Validate the Maper Snap—it generates the message and the presignedUrl.
Configure the REST Put Snap with $presignedUrl as the Service URL, $content as HTTP Entity, and TEXT as Response entity type. The REST Put Snap creates an S3 object if it does not exist.
Validate the REST Put Snap—it generates the response with the following status and the headers as shown below:
Next, configure the second S3 Presigned Snap with the GET HTTP Method to generate the presigned URL.
Validate the Presigned Snap. The Snap generates the presigned URL with the original input.
Configure the REST Get Snap to verify the creation of the S3 object.
Validate the Snap—it gets the response from the REST API service endpoint and generates the output as shown below:
|