These steps describe how to add a new Azure store starting from the AzMultipleStorageContainers subsystem sample, and how to move content between content stores.
-
Locate the file
azure-mc-contentstore-context.xmlin folder:$CATALINA_HOME/shared/classes/alfresco/extension/subsystems/ContentStore/AzMultipleStorageContainers/AzMultipleStorageContainers -
Duplicate the Store 2 section, and replace
store2.withstore3.<bean id="store2.authConfig" class="org.alfresco.integrations.connector.authentication.AuthConfig" > <property name="accountName" value="${connector.az.store2.account.name}" /> <property name="accountKey" value="${connector.az.store2.account.key}" /> <property name="sasToken" value="${connector.az.store2.container.sasToken}" /> <property name="clientId" value="${connector.az.store2.application.clientId}" /> <property name="clientSecret" value="${connector.az.store2.application.clientSecret}" /> <property name="tenantId" value="${connector.az.store2.application.tenantId}" /> <property name="secretKeyName" value="${connector.az.store2.keyVault.secret.name}" /> <property name="vaultName" value="${connector.az.store2.keyVault.name}" /> </bean> <bean id="store2.managedIdentityAD" class="org.alfresco.integrations.connector.authentication.AzureADManagedIdentityAuthentication" > <constructor-arg index="0" ref="store2.authConfig" /> </bean> <bean id="store2.applicationAD" class="org.alfresco.integrations.connector.authentication.AzureADApplicationAuthentication" > <constructor-arg index="0" ref="store2.authConfig" /> </bean> <bean id="store2.sas" class="org.alfresco.integrations.connector.authentication.AzureSasAuthentication" > <constructor-arg index="0" ref="store2.authConfig" /> </bean> <bean id="store2.sharedKey" class="org.alfresco.integrations.connector.authentication.AzureSharedKeyAuthentication" > <constructor-arg index="0" ref="store2.authConfig" /> </bean> <bean id="store2.keyVault" class="org.alfresco.integrations.connector.authentication.AzureKeyVaultAuthentication" > <constructor-arg index="0" ref="store2.authConfig" /> </bean> <bean id="store2.abstractAzureServiceAdapter" class="org.alfresco.integrations.connector.AzureBlobServiceAdapter" abstract="true"> <property name="azureAuthentication" ref="store2.${connector.az.store2.authentication.mode}"/> <property name="tryTimeout" value="${connector.az.tryTimeout}"/> <property name="maxErrorRetries" value="${connector.az.maxErrorRetries}" /> <!-- sets a maximum file size for all content. See content-services-context.xml for defaultContentLimitProvider bean --> <property name="contentLimitProvider" ref="defaultContentLimitProvider" /> </bean> <bean id="store2.azureServiceAdapter" class="org.alfresco.integrations.connector.AzureBlobServiceAdapter" parent="store2.abstractAzureServiceAdapter" init-method="init"> <property name="containerName" value="${connector.az.store2.containerName}" /> </bean> <bean id="store2.azureBlobContentStore" class="org.alfresco.integrations.connector.AzureBlobContentStore" depends-on="store2.azureServiceAdapter"> <property name="serviceAdapter" ref="store2.azureServiceAdapter" /> <property name="objNamePrefix" value="${connector.az.store2.objectNamePrefix}" /> <property name="objNameSuffix" value="${connector.az.store2.objectNameSuffix}" /> <property name="storeProtocol" value="${connector.az.store2.storeProtocol}" /> </bean> -
Add the new store to the Store Selector Content Store.
For example:
<entry key="azContentStore3"> <ref bean="store3.azureBlobContentStore"/> </entry> -
Locate the file
azure-mc-contentstore.propertiesin folder:$CATALINA_HOME/shared/classes/alfresco/extension/subsystems/ContentStore/AzMultipleStorageContainers/AzMultipleStorageContainers -
Duplicate the Store 2 section, and replace
.store2with.store3:connector.az.store2.authentication.mode=${connector.az.authentication.mode} connector.az.store2.account.name=${connector.az.account.name} connector.az.store2.account.key=${connector.az.account.key} connector.az.store2.container.sasToken=${connector.az.container.sasToken} connector.az.store2.application.clientId=${connector.az.application.clientId} connector.az.store2.application.clientSecret=${connector.az.application.clientSecret} connector.az.store2.application.tenantId=${connector.az.application.tenantId} connector.az.store2.keyVault.name=${connector.az.keyVault.name} connector.az.store2.keyVault.secret.name=${connector.az.keyVault.secret.name} connector.az.store2.containerName= connector.az.store2.objectNamePrefix= connector.az.store2.objectNameSuffix= connector.az.store2.storeProtocol=azb