Monday, September 22, 2014

Alfresco and Amazon S3 Publishing

Alfresco and Amazon S3 Publishing:

Follow the below given steps to integrate S3 publishing plug-in with alfresco:

1.   Download the alfresco-s3-integration plug-in from the below given repository.

2.   Import the plug-in into your eclipse.
3.   Open the build.xml and execute the “deploy-all” ant target.
4.   It will automatically apply amp file to alfresco.war & share.war files. It will also print the applied modules info on console after you run the ant target as mentioned above.

5.   If you want to create the amp file manually apply amp to alfresco.war file then follow the below given steps.
a.  Copy the amp to tomcat/webapps dir after packaging the amp file.
b.  Copy the alfresco-mmt-command-line-2.1.jar file to tomcat/webapps directory.
c.  Open command prompt/shell
d.  Navigate to the directory tomcat/webapps directory.
e.  Execute the following command, it will install the amp file to alfresco.war and takes the backup of old war file.

C:\Alfresco\tomcat\webapps> java -jar alfresco-mmt-command-line-2.1.jar install C:\Alfresco\tomcat\webapps C:\Alfresco\tomcat\webapps\alfresco.war -force –directory

f.   To ensure that whether module is installed or not, execute following command.

java -jar alfresco-mmt-command-line-2.1.jar list C:\Alfresco\tomcat\webapps\alfresco.war

g.  It will display following info:

Module 's3-integration' installed in ' C:\Alfresco\tomcat\webapps\alfresco.war '
-    Title:        Alfresco Amazon S3 Integration
-    Version:      1.0
-    Install Date: Mon Jun 16 16:42:12 IST 2014
-    Desription:   Alfresco Amazon S3 Integration [Developed By-Abhinav Kumar Mishra]

6.  Follow the same steps for share.war file also and deploy the alfresco & share war files.

7.   After that go to Alfresco > Admin Console > Channel Manager .
      In the right hand side Click on 'New' button, you can see a new channel "S3"

Follow the below given steps to configure Amazon S3 publishing channel:

  • Create a bucket on Amazon S3 console.
  • Create a directory where you want to store the authored contents.

       Here, I have created bucket as “Abhinav_Community” and directory as “authored_contents”.

  •         Login to Alfresco and navigate to "Admin Console > Channel Publishing > Channel Manager"

  • Click ‘New’ button and click on Amazon S3 publishing channel. Once you will click you will get a popup to authorize the channel. 
  • Provide the alfresco administrator’s user name and password.

  • You have added the Amazon S3 Publishing channel successfully. See the Amazon S3 icon above.

  • Now configure the channel, with bucket name and directory. No need to modify the channel Id.

  • Now we are done with the configurations.
          Publishing the documents to Amazon S3:

  •        Let’s check the Amazon S3 directory (which we created in the beginning) is empty or not.

  • Go  to "Document Library" > "Documents" > "Authoring Contents" > "MyDoc.docx"

  • You can see a “Publish” link. Click on the link to publish the file to S3. 

  • When you will click on the “Publish” link you will get following popup.

  • Select the channel as “AmazonS3” and click “Publish”. You will get following message after publishing.

  • Go to “Publishing History” section at the bottom of the same page. You will see the history as given below.

Now, the MyDoc.docx will be published to Amazon S3.
Actual file URI in Alfresco:  workspace://SpacesStore/59c9f8d8-543d-492d-8bdf-d22c218bd9fd

  • Just in front of the document name you can see and “Unpublish” link. You can use this link to unpublish the document from Amazon S3 if want to. This will delete the document stored on Amazon S3 “Abhinav_Community/authored_contents” directory.

Leave your comments/suggestions below. Otherwise the next time :)


  1. Alfresco 5.1 Community Edition there is no channel manager. how can i enable channel manager in that version?

    1. Plugin does't work with 5.1 community as of now. It works with 5.0.a community edition and 4.x community and enterprise edition. I am working in the backend to support the plug-in for 5.x versions where channel manager option is not available.

  2. hey i installed the plugin to 5.0.a but when i goto channel manager and click new there is no s3

    1. Hi, I am not sure why you are not able to see it. But it works for me. May be share module is not installed properly. As of now i am not sure about the step you followed. Ant target deploy-all does everything.

    2. I hav alfresco 5.0.a installed to ubuntu 12 server. In windows using eclipse i generated the amp file of the plugin and then copied the amp file to ubuntu server and installed using amp installation method for linux. when i list the plugins installed it shows that s3 plugin has been installed as well.only i dont see it in the channel manager


Thanks for your comments/Suggestions.