<!-- loio7f7cf11aa2a04073a0a9538c6d93ed2e -->
# AzureStorage Sender Adapter for BLOB Storage
The AzureStorage sender adapter enables SAP Integration Suite to receive BLOBs from Azure Storage.
> ### Note:
> This adapter is available on SAP Business Accelerator Hub.
>
> For more information, see [Consuming Integration Adapters from SAP Business Accelerator Hub](consuming-integration-adapters-from-sap-business-accelerator-hub-b9250fb.md).
>
> The availability of the adapter is dependent on your SAP Integration Suite service plan. For more information about different service plans and their supported feature set, see SAP Notes [2903776](https://launchpad.support.sap.com/#/notes/2903776) and [3188446](https://launchpad.support.sap.com/#/notes/3188446).
> ### Note:
> This adapter exchanges data with a third-party web service that is outside the scope of SAP. Make sure that the data exchange complies with your company’s policies.
Once you have created a sender channel and selected the *AzureStorage* sender adapter and the *BLOB Storage* message protocol, you can configure the following attributes.
Select the *General* tab to access the following parameters.
**General**
<table>
<tr>
<th valign="top">
Parameter
</th>
<th valign="top">
Description
</th>
</tr>
<tr>
<td valign="top">
*Name*
</td>
<td valign="top">
Enter the name of the channel.
</td>
</tr>
<tr>
<td valign="top">
*Direction*
</td>
<td valign="top">
Sender
</td>
</tr>
<tr>
<td valign="top">
*System*
</td>
<td valign="top">
Sender
</td>
</tr>
<tr>
<td valign="top">
*Adapter Type*
</td>
<td valign="top">
AzureStorage
</td>
</tr>
<tr>
<td valign="top">
*Transport Protocol*
</td>
<td valign="top">
HTTPS
</td>
</tr>
<tr>
<td valign="top">
*Message Protocol*
</td>
<td valign="top">
*BLOB Storage*
Shows the message protocol selected when creating the channel.
</td>
</tr>
</table>
You can provide more information in the *Description* field.
Select the *Connection* tab and provide values in the fields as follows.
**Connection**
<table>
<tr>
<th valign="top">
Parameter
</th>
<th valign="top">
Description
</th>
</tr>
<tr>
<td valign="top">
*Authentication*
</td>
<td valign="top">
Select authentication option to use to connect to Azure Storage server. There are the following options:
- *SAS Token*
- *Shared Access Key*
</td>
</tr>
<tr>
<td valign="top">
*Token Alias*
\(Only if for *Authentication* the option *SAS Token* is selected\)
</td>
<td valign="top">
Alias name of token used to communicate with Azure Storage.
</td>
</tr>
<tr>
<td valign="top">
*Key Alias*
\(Only if for *Authentication* the option *Shared Access Key* is selected\)
</td>
<td valign="top">
Alias name of key used to communicate with Azure Storage.
</td>
</tr>
<tr>
<td valign="top">
*Timeout*
</td>
<td valign="top">
Maximum waiting time, in milliseconds, to contact Azure Storage while establishing a connection or performing a read operation \(default value: 60000\).
Setting a timeout is mandatory for both token and key aliases.
</td>
</tr>
</table>
Select the *Processing* tab and provide values in the fields as follows.
**Processing**
<table>
<tr>
<th valign="top">
Parameter
</th>
<th valign="top">
Description
</th>
</tr>
<tr>
<td valign="top">
*Storage Account Name*
</td>
<td valign="top">
Enter name of the storage account.
> ### Note:
> The storage account name has been predefined already in Azure Storage. If you enter a wrong name, an error message is shown.
</td>
</tr>
<tr>
<td valign="top">
*Container name*
</td>
<td valign="top">
Enter name of the container.
> ### Note:
> Follow these rules when defining a container name:
>
> - Name contains only lowercase letters, numbers and hyphens.
>
> Name begins with either a letter or a number.
>
> Name size is between 3 and 63 characters.
</td>
</tr>
<tr>
<td valign="top">
*Blob Path*
</td>
<td valign="top">
Enter blob path along with the blob name.
Example: `employee_details.txt`
</td>
</tr>
<tr>
<td valign="top">
*Body Size \(in MB\)*
</td>
<td valign="top">
Enter blob maximum body size \(in MB\). By default, it is 40. Only positive numbers are allowed.
Setting a timeout is mandatory for both token and key aliases.
</td>
</tr>
<tr>
<td valign="top">
*Post-Processing*
</td>
<td valign="top">
Select the action to be performed after successful processing of the file:
- *Keep Blob and Process Again*
Keeps blob in the storage and reprocesses it as specified by the scheduler. If you choose this option, the blob is processed with every message processing run, even if it hasn't been changed.
- *Keep Blob and Mark as Processed in Idempotent Repository*
Prevents blob from being consumed again within the configured duration. For that purpose, an idempotent database is activated with the configured persist duration.
> ### Note:
> The idempotent repository contains information on blobs already been consumed from Azure Storage. It stores the blob names in a database to synchronize between multiple worker nodes and to prevent the blobs from being read again when the runtime node is restarted. Blob name entries are deleted by default after 90 days.
- *Delete Blob*
Blob is deleted from Azure Storage after it has been processed successfully.
- *Move Blob*
Blob is moved to another directory/container. If you select this option, you need to specify the target directory/container. For *Download File* operation, this post-processing option requires an existing folder path where to move the blob. If the given folder doesn't exist, post-processing operation fails and the blob remains in the source folder.
</td>
</tr>
<tr>
<td valign="top">
*Persist Duration \(in Days\)*
\(Only if for *Post-Processing* the option *Keep Blob and Mark as Processed in Idempotent Repository* is selected\)
</td>
<td valign="top">
Enter the time \(in days\), for which blob name is to be stored in idempotent repository to avoid processing again within the given duration \(default: 90 days\).
</td>
</tr>
<tr>
<td valign="top">
*Archive Directory*
\(Only if for *Post-Processing* the option *Move Blob* is selected\)
</td>
<td valign="top">
File is moved to another directory. If you select this option, you need to specify the target directory.
> ### Note:
> Follow these rules:
>
> - Archive container should be located under the same storage account.
>
> - Archive container should be pre-created before performing the operation.
</td>
</tr>
<tr>
<td valign="top">
*Raise Exception on Post-Processing Failure*
Only if for *Post-Processing* one of the following options is selected:
- *Delete Blob*
- *Move Blob*
- *Keep Blob and Mark as Processed in Idempotent Repository*
</td>
<td valign="top">
Select this option to raise error in the message processing log if post processing fails.
Using this option, if post-processing fails, the message gets *Failed* status. Otherwise, the message gets status *Successful*. In both cases, the post-processing operation status is stored in message property log.
- If post-processing operation fails and *Move Blob* is selected, status is stored in property `SAP_AzureStorage_Move_Response`.
- If post-processing operation fails and *Delete Blob* is selected, status is stored in property `SAP_Azurestorage_Delete_Response`.
- If post-processing operation fails and *Keep Blob and Mark as Processed in Idempotent Repository* is selected, status is stored in property `SAP_Azurestorage_Keepfile_Response`.
</td>
</tr>
<tr>
<td valign="top">
*Key*
</td>
<td valign="top">
Select a request parameter.
</td>
</tr>
<tr>
<td valign="top">
*Value*
</td>
<td valign="top">
Specify the value of the argument. You can also enter`${header.headername}` or `${property.propertyname}` to dynamically read the value from the message exchange.
</td>
</tr>
</table>
Select the *Scheduler* tab and provide values in the fields as follows. The scheduler helps you to download the blobs on regular intervals as per the timer:
**Scheduler**
<table>
<tr>
<th valign="top">
Parameter
</th>
<th valign="top">
Description
</th>
</tr>
<tr>
<td valign="top">
*Schedule on Day*
</td>
<td valign="top">
There are the following options:
- *On Date*: Select the date of the scheduling day.
- *On Time*: Set the time of scheduling.
- *Every*: Set the polling interval for the Azure Storage sender adapter.
- *Time Zone*: Set the time zone.
</td>
</tr>
<tr>
<td valign="top">
*Schedule to Recur*
</td>
<td valign="top">
There are the following options:
- *Daily*: Select if scheduling needs to recur daily.
- *Weekly*: Select if scheduling needs to recur weekly.
- *Monthly*: Select if scheduling needs to recur monthly.
- *On Time*: Set the time of scheduling.
- *Every*: Polling interval for the Azure Storage sender adapter.
- *Time Zone*: Set the time zone.
</td>
</tr>
</table>