Auto Uploading and Installing Packages in AEM | Community
Skip to main content
Level 2
October 16, 2015
Solved

Auto Uploading and Installing Packages in AEM

  • October 16, 2015
  • 11 replies
  • 4777 views

Hi,

In our deployment scenario, the authoring and publishing server would be on different servers. The authoring team will create the content and publish it.
This published content will be ftped securely to a share.
We need to create a job, which will retrieve this published content zip and upload it in package manager and post uploading, install it.
Does AEM provides some commands to do this?
We are thinking to create a batch file or a dot net application (.exe) to acheive this, but need info on some AEM APIs which will help us do this.
 

Regards,
Aditya Nayak

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by JustinEd3

Hi,

The Package Manager has an HTTP API for doing those types of tasks: http://dev.day.com/docs/en/crx/current/how_to/package_manager.html#Package%20Manager%20HTTP%20Service%20API

Regards,

Justin

11 replies

JustinEd3Adobe EmployeeAccepted solution
Adobe Employee
October 16, 2015

Hi,

The Package Manager has an HTTP API for doing those types of tasks: http://dev.day.com/docs/en/crx/current/how_to/package_manager.html#Package%20Manager%20HTTP%20Service%20API

Regards,

Justin

joerghoh
Adobe Employee
Adobe Employee
October 16, 2015

Hi,

Is FTP the only protocol you can use? Is the standard CQ replication (HTTP, you can also use HTTPS, proxy-support available) not ok? I would not try to reinvent this mechanism.

Jörg

Level 2
October 16, 2015

Hi,

I do see that you can use PackageManager Http Service API -
http://localhost:7402/crx/packmgr/service/<response-format>/<package-jcr-path>?cmd=<command>

If my package is at a location "C:\ContentRepository\MYCo-ContentPackage.zip", How am I going to pass this path in the API?

Regards,

Aditya Nayak

Adobe Employee
October 16, 2015

You would use the upload command. If you look at the documentation, you pass in the package file in the package form parameter.

Level 2
October 16, 2015

Is this possible withoput using CURL, Since, we do not support CURL in our organization.

Some sample http example would be appreciated.

Thanks,
Aditya Nayak

Adobe Employee
October 16, 2015

curl is just an HTTP client. You can use whatever HTTP client you want.

Level 2
October 16, 2015

Hi Justin,

I am using C#.NET to acheive this (not CURL). Following is my code snippet. I am getting "package file parameter missing" message.

        private static void UploadAEMPublishPackage()                 {                     string url = "http://localhost:4503/crx/packmgr/service/.json/?cmd=upload";                     WebRequest request = WebRequest.Create(url);                     request.Method = "POST";                     request.ContentType = "multipart/form-data";                                         request.Credentials = new NetworkCredential("admin", "admin");                                         FileStream fs = null;                     fs = File.OpenRead(@"D:\AdobeAEM\packages\MySiteTaxonomy-1.0.0.zip");                     byte[] buffer = new byte[fs.Length];                     fs.Read(buffer, 0, Convert.ToInt32(fs.Length));                                         Stream reqstr = request.GetRequestStream();                     reqstr.Write(buffer, 0, buffer.Length);                     reqstr.Close();                                         WebResponse response = request.GetResponse();                     StreamReader reader = new StreamReader(response.GetResponseStream());                     string str = reader.ReadLine();                     while (str != null)                     {                         Console.WriteLine(str);                         str = reader.ReadLine();                     }                 }
Sham_HC
Level 10
October 16, 2015

Upload service takes 2 parameters one is command (cmd=upload) & other is package (package=file). In your code just uploading file does not help & you need to pass with right mapping(package) parameters.  You might find [1] discussion helpful,

[1]    http://stackoverflow.com/questions/219827/multipart-forms-from-c-sharp-client

Level 2
October 16, 2015

Hi,

I was able to access the publisher and upload the zip.

I am doing a form post to my publisher instance -
http://localhost:4503/crx/packmgr/service/.json/?cmd=upload
But get following message - 
This node already exists: /etc/packages

I am not using CuRL, but using C#.NET classes like HttpWebRequest and HttpWebResponse.

Any help for me troubleshoot this further is greatly appreciated?

Thanks,
Aditya

January 11, 2018

Justin - do you have an updated URL for your pointer? dev.day.com does not exist. Isn't it documented on adobe.com?