<!-- loio1ea5b2bb7ae94a68819f5aa17895a035 -->
# AzureStorage Receiver Adapter for Fileshare Storage
The AzureStorage receiver adapter enables SAP Integration Suite to write files and folders to 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 receiver channel and selected the *AzureStorage* receiver adapter and the *Fileshare 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">
Receiver
</td>
</tr>
<tr>
<td valign="top">
*System*
</td>
<td valign="top">
Receiver
</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">
*Fileshare 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">
*Dynamic*
</td>
<td valign="top">
Select this option to dynamically define the authentication through the value of property `SAP_AzureStorage_Outbound_AuthType`.
- To use Token Alias, use value `SASTOKEN`.
- To use Key Alias, use value `SharedAccessKey`.
</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">
*Operation*
</td>
<td valign="top">
Select one of the following options to define which operation to perform:
- *Create Share*
Creates new Azure Storage share.
- *Delete Directory*
Removes the specified empty directory.
- *Delete File*
Immediately deletes the specified file from the storage account.
- *Delete Share*
Deletes the specified share.
- *Get File Metadata*
Returns all user-defined metadata for the specified file.
- *Get File Properties*
Returns system properties for the file.
- *Get Share Properties*
Returns properties for the specified share.
- *List Directory and Files*
Returns a list of files and directories for the specified share or directory. If the *maxresults* parameter is not specified under *List Directories and Files*, the server returns up to 5000 items, if exist.
If the listing operation crosses a partition boundary, the service returns a continuation token for retrieving the remainder of the results. After that, the service can return fewer results than specified by the *maxresults* parameter, or than the default of 5000.
- *List Shares*
Returns list of shares for the specified account.
- *Set File Metadata*
Sets user-defined metadata for the specified file as one or more name value pairs.
- *Upload File*
Uploads a new file or replaces a file in directory.
</td>
</tr>
<tr>
<td valign="top">
*Storage Account Name*
</td>
<td valign="top">
Enter the name of the storage account for all supported operations.
> ### Note:
> The storage account name has been predefined already in the Azure Storage. If you enter a wrong name, the system displays an error message.
</td>
</tr>
<tr>
<td valign="top">
*Container Name*
</td>
<td valign="top">
Enter the name of the container for all operations.
</td>
</tr>
<tr>
<td valign="top">
*Access-Tier*
\(Only if for *Operation* the option *Create Share* is selected\)
</td>
<td valign="top">
Specifies an access tier of the share.
- *Transaction Optimized* \(valid value TransactionOptimized\)
- *Cool*
- *Hot*
- *Dynamic*
To dynamically define this parameter, use property `SAP_AzureStorage_Outbound_AccessTier`.
</td>
</tr>
<tr>
<td valign="top">
*Directory Path*
\(Only if for *Operation* the option *Delete Directory* or *List Directory and Files* is selected\)
</td>
<td valign="top">
Enter directory path.
Example: `/finance/wage`
</td>
</tr>
<tr>
<td valign="top">
*File Path*
Only if for *Operation* one of the following options is selected:
- *Delete File*
- *Get File Metadata*
- *Get File Properties*
- *Set File Metadata*
- *Upload File*
</td>
<td valign="top">
Enter File path along with the file name.
Example: `/finance/tax/ledger.txt`
</td>
</tr>
<tr>
<td valign="top">
*Share Name*
\(Only if for *Operation* the option *Create Share, Delete Share* or *Get Share Properties* is selected\)
</td>
<td valign="top">
Enter name of the share.
> ### Note:
> Follow these rules when defining a share 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">
*Prefix*
\(Only if for *Operation* the option *List Directory and Files* or *List Shares* is selected\)
</td>
<td valign="top">
Filters the results to return only containers whose name begins with the specified prefix. This is optional.
</td>
</tr>
<tr>
<td valign="top">
*Page Size*
\(Only if for *Operation* the option *List Directory and Files* or *List Shares* is selected\)
</td>
<td valign="top">
Specify the page size to retrieve specific number of results. If you did not specify, the server returns up to 5000 results.
</td>
</tr>
<tr>
<td valign="top">
*Process in Pages*
\(Only if for *Operation* the option *List Directory and Files* or *List Shares* is selected\)
</td>
<td valign="top">
Message is processed in batches with a size specified by the *Page Size* parameter. Select this checkbox only when using the adapter together with a *Looping Process Call* step.
- If you do not specify both *Page Size* and *Process in Pages*, the server returns results up to the maximum results supported by the respective REST API.
- If you specify only *Page Size*, the server returns results up to the specified page size.
- If you specify only *Process in Pages*, the server returns results up to the maximum results supported by the respective REST API.
- If you do not specify *Page Size* and *Process in Pages*, the server returns results up to the specified page size until all the results in the storage are retrieved \(to be used in *Looping Process Call*\).
</td>
</tr>
<tr>
<td valign="top">
*Metadata Name: Value*
\(Only if for *Operation* the option *Set File Metadata* is selected\)
</td>
<td valign="top">
Enter one or more name value pair to set the metadata in the format `revenue:incometax` for one and `finance:incometax|finance:exciseduty` for more than one. If nothing is passed for name value pair, existing metadata is deleted.
</td>
</tr>
<tr>
<td valign="top">
*Handling for Existing File*
\(Only if for *Operation* the option *Upload File* is selected\)
</td>
<td valign="top">
Choose an action to perform if the file already exists.
- *Overwrite*
If file already exists in destination, overwrite the file. Oherwise, create file. This is the default action.
- *Fail*
If file already exists, set message status to *Failed* in the message processing log. Otherwise, create file.
- *Ignore*
If file already exists, ignore the data and set message status to *Success* in the message processing log. Otherwise, create file.
- *Dynamic*
Specify parameter value dynamically by the value of one of the property `SAP_AzureStorage_FileHandling`. If selected, the value defined in the channel is overwritten. If property is not defined, message processing results in a failure. The allowed values for this property are `Overwrite`, `Fail`, and `Ignore`
</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>
<tr>
<td valign="top">
*Response Format*
</td>
<td valign="top">
The following response formats are given:
- *JSON*
- *XML*: Response is converted to XML format by the adapter.
- *Default*: Response received from Azure Storage is handed over to the exchange without changing the format.
- *Dynamic*: To define response format dynamically, enter the property `SAP_AzureStorage_Outbound_ResponseFormat`.
</td>
</tr>
<tr>
<td valign="top">
*Request Headers*
</td>
<td valign="top">
Enter Pipe-separated \(`|`\) value list of request headers to be sent to Azure.
If you enter the value `*`, all message headers are converted to request headers and forwarded.
</td>
</tr>
</table>
<a name="loio1ea5b2bb7ae94a68819f5aa17895a035__section_h43_dzh_3wb"/>
## Default Headers and Exchange Properties
<table>
<tr>
<th valign="top">
Sl No
</th>
<th valign="top">
Operation
</th>
<th valign="top">
Name
</th>
<th valign="top">
Type
</th>
<th valign="top">
Description
</th>
</tr>
<tr>
<td valign="top">
1
</td>
<td valign="top">
All file storage-related operation \(except *List Directory and File*\)
</td>
<td valign="top">
SAP\_AzureStorage\_Outbound\_FileName
</td>
<td valign="top">
Property
</td>
<td valign="top">
Capture the file name specified.
</td>
</tr>
<tr>
<td valign="top">
2
</td>
<td valign="top">
All share-related operation \(except *List Shares*\)
</td>
<td valign="top">
SAP\_AzureStorage\_Outbound\_ShareName
</td>
<td valign="top">
Property
</td>
<td valign="top">
Capture the share name specified.
</td>
</tr>
</table>