Auto Uploading and Installing Packages in AEM | Community
Skip to main content
Level 2
Oct 16, 2015 2:26 AM UTC
Solved

Auto Uploading and Installing Packages in AEM

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.
JustinEd3Accepted solution
Employee
Oct 16, 2015 2:26 AM UTC

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

joerghoh
Employee
Jan 11, 2018 6:49 PM UTC
New Participant
Jan 11, 2018 6:30 PM UTC

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

Translate
JustinEd3Accepted solution
Employee
Oct 16, 2015 2:26 AM UTC

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

Translate
joerghoh
Employee
Oct 16, 2015 2:26 AM UTC

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

Translate
Level 2
Oct 16, 2015 2:26 AM UTC

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

Translate
Employee
Oct 16, 2015 2:26 AM UTC

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

Translate
Level 2
Oct 16, 2015 2:26 AM UTC

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

Translate
Employee
Oct 16, 2015 2:26 AM UTC

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

Translate
Level 2
Oct 16, 2015 2:26 AM UTC

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();                     }                 }
Translate
Sham_HC
Level 10
Oct 16, 2015 2:26 AM UTC

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

Translate