X4 Produktdokumentation

Microsoft Azure Blob Storage Connector

This adapter allows you to connect to a Microsoft Azure Blob storage to perform various operations.Properties

Operation

Defines the operation executed by the adapter

Possible values:


The parameters containerName and blobname are required for all operations.

  • Search: Searches information (containers or blobs) in the Microsoft Azure storage account

  • Append: Appends information to the selected blob in the Microsoft Azure storage account
    Required parameters: fileLocation

  • Upload: Uploads or creates containers and blobs to the Microsoft Azure storage account
    Required parameters: fileLocation

  • Download: Downloads a blob from the Microsoft Azure storage account

  • Delete: Deletes a container or a blob in the Microsoft Azure storage account

  • UpdateDirectory: Updates the source directory name with the target directory name
    Required parameters: sourceDirectoryName, targetDirectoryName

  • MoveDirectory: Moves the content from the source directory to the target directory
    Required parameters: sourceDirectoryName, targetDirectoryName

  • DeleteDirectory: Deletes the content from the source directory
    Required parameters: sourceDirectoryName, targetDirectoryName

  • MoveBlobDirectory: Moves a specific blob from the source directory to the target directory
    Required parameters: sourceDirectoryName, targetDirectoryName

Parameters

Adapter

Adapter main class (do not change!)

Possible values: de.softproject.integration.adapter.microsoft.azure.blob.MicrosoftAzureBlobStorageAdapter: main class (default)

accountName

Name of the Microsoft Azure storage account

Possible values: Any valid string, e. g. softproject

accountKey

Password of the Microsoft Azure storage account

Possible values: Any string containing the key, e. g.AD9ohFhJ6Hve9ODJEXTw53MjR1tjoUZ8lWfDlw5UFqGMih3VtUCapIwIfEMBmITeShQN9MbCITE4SzxTcGIybw==

containerName

Name of the container where the blobs are organized

Possible values: Any string containing the name

The container name must meet the following naming rules:

    • Container names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character

    • Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names

    • All letters in a container name must be lowercase

    • Container names must be between 3 and 63 characters long

blobName

Name of the blobs stored

Possible values: Any string containing the name

The blob name must meet the following naming rules:

    • A blob name can contain any combination of characters

    • A blob name must be at least one character long and cannot be more than 1,024 characters long

    • Blob names are case-sensitive

    • Reserved URL characters must be properly escaped

    • The number of path segments comprising the blob name cannot exceed 254. A path segment is the string between consecutive delimiter characters (e. g., the forward slash '/') that corresponds to the name of a virtual directory

fileLocation

Path of the file to be uploaded to the storage account; This parameter is only valid for the operation Upload

Possible values:

  • System path, e. g. C:\X4\V_5.9\Server\X4DB\1\ExampleProcess/MAzureBlobStore/Data/TextDocument.txt

  • X4db path, e. g. x4db://1/ExampleProcess/MAzureBlobStore/Data/TextDocument.txt

  • Xstore path, e. g. xstore://ExampleProcess/MAzureBlobStore/Data/TextDocument.txt

overwrite

Flag indicating whether blobs are overwritten or not

sourceDirectoryName

Name of the source directory for all directory operations

Possible values: Any valid string ending with /, e. g. sourceFolder/

targetDirectoryName

Name of the target directory for all directory operations

Possible values: Any valid string ending with /, e. g. targetFolder/

Status values

1

The operation was executed successfully

-1

An error occurred during execution

0

  • Operation Download: the blob to be downloaded doesn't exist

  • Operation Delete: the blob to be deleted doesn't exist

  • Operations UpdateDirectoryMoveDirectoryDeleteDirectoryMoveBlobDirectory:the source directory doesn't existthe target directory could not be found (operations MoveDirectory, MoveBlobDirectory)the blob doesn't exist in the source folder (operation MoveBlobDirectory)

Input 

The adapter expects any input document, e. g. a binary document or a base64 document (XML or text).

  • Operation Upload: An input document can be omitted, if the parameter fileLocation is specified. In any other cases an input document is required.

  • For all other operations, an input document is not required.

Output

The adapter returns different kind of documents depending on the executed operation:

Operation Upload:

  • If the operation was executed successfully (status 1), the adapter returns an XML document with the URL of the uploaded file or document.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <BLOB>
    	<Upload>https://storage_account_name.blob.core.windows.net/container_name/blob_name</Upload>
    </BLOB>
    


  • In case of an error (status -1), the output corresponds to the input document.

Operation Search:

  • If the operation was executed successfully (status 1), the adapter returns an XML document with all containers and their blob URI objects.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <ListBlobs>
    	<Container name="pc-files">
    		<Blob name="C-structure.xml">https://softproject.blob.core.windows.net/pc-files/C-structure.xml</Blob>
    		<Blob name="XStore_WordDocument.doc">https://softproject.blob.core.windows.net/pc-files/XStore_WordDocument.doc</Blob>
    		<Blob name="jar_files(1).zip">https://softproject.blob.core.windows.net/pc-files/jar_files(1).zip</Blob>
    		<Blob name="x4db/HipChat-4.30.6.1676.exe">https://softproject.blob.core.windows.net/pc-files/x4db/HipChat-4.30.6.1676.exe</Blob>
    		<Blob name="xstore/MWDocument.doc">https://softproject.blob.core.windows.net/pc-files/xstore/MWDocument.doc</Blob>
    	</Container>
    	<Container name="testcontainer-prototype">
    		<Blob name="base64Files/file1">https://softproject.blob.core.windows.net/testcontainer-prototype/base64Files/file1</Blob>
    		<Blob name="documents/doc1">https://softproject.blob.core.windows.net/testcontainer-prototype/documents/doc1</Blob>
    		<Blob name="documents/doc1.docx">https://softproject.blob.core.windows.net/testcontainer-prototype/documents/doc1.docx</Blob>
    		<Blob name="imagesFiles/image1">https://softproject.blob.core.windows.net/testcontainer-prototype/imagesFiles/image1</Blob>
    		<Blob name="textFiles/subTextFiles/text5.txt">https://softproject.blob.core.windows.net/testcontainer-prototype/textFiles/subTextFiles/text5.txt</Blob>
    		<Blob name="xml1.xml">https://softproject.blob.core.windows.net/testcontainer-prototype/xml1.xml</Blob>
    		<Blob name="xmlFiles/xml1">https://softproject.blob.core.windows.net/testcontainer-prototype/xmlFiles/xml1</Blob>
    		<Blob name="xmlFiles/xml1.xml">https://softproject.blob.core.windows.net/testcontainer-prototype/xmlFiles/xml1.xml</Blob>
    	</Container>
    	<Container name="test">... </Container>
    </ListBlobs>
    


  • In case of an error (status -1), the output corresponds to the input document.

Operation Download:

  • If the operation was executed successfully (status 1), the adapter returns the downloaded blob (text, XML, binary document etc.).

  • In case of an error (status -1), the output corresponds to the input document.

  • If the blob or container don’t exist (status 0), the output document corresponds to the input document.

Operation UpdateDirectory:

  • If the operation was executed successfully (status 1), the output document shows all affected blobs after updating the source folder with the name of the target folder.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <UpdateDirectory targetDirectory="testFolderR/" sourceDirectory="testFolder/">
    	<Blob newName="testFolderR/C-structure.xml" name="testFolder/C-structure.xml"/>
    	<Blob newName="testFolderR/X4_1_Configuration.txt" name="testFolder/X4_1_Configuration.txt"/>
    </UpdateDirectory>
    


  • In case of an error (status -1), the output corresponds to the input document.

  • If the source directory doesn't exists (status 0), the output is an empty XML document.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <UpdateDirectory targetDirectory="otherFiles/testSubFolderR/" sourceDirectory="textFiles/subTextFiles"/>
    


Operation MoveDirectory:

  • If the operation was executed successfully (status 1), the output document shows all affected blobs after moving the source folder to the target folder.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <MoveDirectory targetDirectory="textFiles/" sourceDirectory="testFolderR/">
    	<Blob newName="textFiles/C-structure.xml" name="testFolderR/C-structure.xml"/>
    	<Blob newName="textFiles/X4_1_Configuration.txt" name="testFolderR/X4_1_Configuration.txt"/>
    </MoveDirectory>
    


  • In case of an error (status -1), the output corresponds to the input document.

  • If the source or target directory doesn't exists (status 0), the output is an empty XML document.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <MoveDirectory targetDirectory="otherFiles/testSubFolderR/" sourceDirectory="textFiles/subFolderR"> Target Directory not found for Move operation </MoveDirectory>
    


    XML
    <?xml version="1.0" encoding="UTF-8"
    <MoveBlobDirectory targetDirectory="textFiles/" sourceDirectory="otherFiles/testSubFolderR"/>
    


Operation DeleteDirectory:

  • If the operation was executed successfully (status 1), the output document shows all affected blobs after deleting the source folder and its content

    XML
    <?xml version="1.0" encoding="UTF-8"
    <DeleteDirectory targetDirectory="" sourceDirectory="imagesFiles2/">
    	<Blob newName="" name="imagesFiles2/image1.png"/>
    </DeleteDirectory>
    


  • In case of an error (status -1), the output corresponds to the input document.

  • If the source directory doesn't exists (status 0), the output is an empty XML document.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <DeleteDirectory targetDirectory="" sourceDirectory="imagesFiles2/"/>
    


Operation MoveBlobDirectory:

  • If the operation was executed successfully (status 1), the output document shows the blobs moved from the source to the target folder.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <MoveBlobDirectory targetDirectory="/" sourceDirectory="textFiles/">
    	<Blob newName="X4_1_Configuration.txt" name="textFiles/X4_1_Configuration.txt"/>
    </MoveBlobDirectory>
    


  • In case of an error (status -1), the output corresponds to the input document.

  • If the source or target directory doesn't exists (status 0), the output is an empty XML document.

    XML
    <?xml version="1.0" encoding="UTF-8"
    <MoveBlobDirectory targetDirectory="otherFiles/testSubFolderR/" sourceDirectory="textFiles/subFolderR"> Target Directory not found for Move operation </MoveDirectory>
    


    XML
    <?xml version="1.0" encoding="UTF-8"
    <MoveBlobDirectory targetDirectory="textFiles/" sourceDirectory="otherFiles/testSubFolderR"/>