Show Menu
トピック×

AEM での cURL の使用

管理者は、多くの場合、システムの一般的なタスクを自動化またはシンプル化する必要があります。例えば、AEM では、ユーザーの管理、パッケージのインストールおよび OSGi バンドルの管理は、一般におこなう必要のあるタスクです。
AEM が構築されている Sling フレームワークの RESTful 特性により、ほとんどのタスクは URL 呼び出しに集約されます。cURL は、そのような URL 呼び出しの実行に使用でき、AEM 管理者にとって便利なツールです。

cURL とは

cURL は、URL 操作を実行するために使用される、オープンソールのコマンドラインツールです。HTTP、HTTPS、FTP、FTPS、SCP、SFTP、SFTP、TFTP、LDAP、DICT、TELNET、FILE、IMAP、POP3、SMTP、RTSPなど、様々なインターネットプロトコルをサポートしています。
cURL は、URL 構文を使用してデータを取得または送信するための、広く使用される安定したツールで、最初にリリースされたのは 1997 年です。cURL という名前の元々の意味は、「see URL」でした。
AEM が構築されている Sling フレームワークの RESTful 特性により、ほとんどのタスクは URL 呼び出しに集約されます。これは、cURL で実行できます。ページのアクティベートおよびワークフローの開始などの コンテンツ操作タスク やパッケージ管理およびユーザー管理などの 運用タスク は、cURL を使用して自動化できます。さらに、AEM のほとんどのタスクについて、 独自の cURL を作成 できます。
cURL を使用して実行された AEM コマンドは、AEM の任意のユーザーのように承認される必要があります。cURL を使用して AEM コマンドを実行する場合、すべての ACL およびアクセス権が適用されます。

cURL のダウンロード

cURL は、macOS および一部の Linux ディストリビューションに標準で備わっています。実質的にほぼすべてのオペレーティングシステムで使用できます。The latest downloads can be found at https://curl.haxx.se/download.html .
cURL のソースリポジトリは、GitHub にもあります。

cURL 対応 AEM コマンドの作成

cURL コマンドは、ワークフローのトリガー、OSGi 設定の確認、JMX コマンドのトリガー、レプリケーションエージェントの作成など、AEM のほとんどの操作用に作成できます。
特定の操作に必要な最適なコマンドを見つけるには、ブラウザーの開発者ツールを使用して、AEM コマンドを実行する際に、サーバーに対する POST 呼び出しをキャプチャする必要があります。
次に、例として Chrome ブラウザー内で新しいページを作成してこれをおこなう方法の手順を説明します。
  1. AEM 内で呼び出したいアクションを準備します。In this case, we have proceded to the end of the Create Page wizard, but have not yet clicked Create .
  2. 開発者ツールを開始して、「 Network 」タブを選択します。コンソールをクリアする前に、「 Preserve log 」オプションをクリックします。
  3. ページを作成 ​ウィザードの「 作成 」をクリックして、実際にワークフローを作成します。
  4. 結果として表示される POST アクションを右クリックして、 Copy Copy as cURL を選択します。
  5. Copy the cURL command to a text editor and remove all headers from the command, which start with -H (highligted in blue in the image below) and add the proper authentication parameter such as -u <user>:<password> .
  6. コマンドラインで cURL コマンドを実行して、応答を表示します。

一般的な操作の AEM cURL コマンド

次に、一般的な管理および操作タスクの AEM cURL コマンドのリストを示します。
次の例では、AEM が localhost のポート 4502 で実行され、ユーザー admin (パスワード admin )を使用していると仮定します。追加のコマンドのプレースホルダーは、山括弧で囲まれています。

パッケージ管理

リストすべてのインストール済みパッケージ

curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls

パッケージの作成

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=create -d packageName=<name> -d groupName=<name>

パッケージのプレビュー

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview

パッケージコンテンツのリスト表示

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents

パッケージの作成

curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build

パッケージを再度含める

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap

パッケージの名前を変更

curl -u <user>:<password> -X POST -Fname=<New Name> http://localhost:4502/etc/packages/<Group Name>/<Package Name>.zip/jcr:content/vlt:definition

パッケージのアップロード

curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json

パッケージのインストール

curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip

パッケージのアンインストール

curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip

パッケージの削除

curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip

パッケージのダウンロード

curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip

ユーザー管理

新しいユーザーの作成

curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables

新しいグループの作成

curl -u <user>:<password> -FcreateGroup=group1 -FauthorizableId=testGroup1 http://localhost:4502/libs/granite/security/post/authorizables

既存のユーザーへのプロパティの追加

curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html

プロファイルを使用したユーザーの作成

curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=hashimkhan -Frep:password=hashimkhan -Fprofile/gender=male http://localhost:4502/libs/granite/security/post/authorizables

グループのメンバーとしての新しいユーザーの作成

curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=testuser -Frep:password=abc123 -Fmembership=contributor http://localhost:4502/libs/granite/security/post/authorizables

グループへのユーザーの追加

curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html

グループからのユーザーの削除

curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html

ユーザーのグループのメンバーシップの設定

curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html

ユーザーの削除

curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser


グループの削除

curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup

バックアップ

See Backup and Restore for details.

OSGi

バンドルの開始

curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>

バンドルの停止

curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>

Dispatcher

キャッシュの無効化

curl -H "CQ-Action: Activate" -H "CQ-Handle: /content/test-site/" -H "CQ-Path: /content/test-site/" -H "Content-Length: 0" -H "Content-Type: application/octet-stream" http://localhost:4502/dispatcher/invalidate.cache

キャッシュの削除

curl -H "CQ-Action: Deactivate" -H "CQ-Handle: /content/test-site/" -H "CQ-Path: /content/test-site/" -H "Content-Length: 0" -H "Content-Type: application/octet-stream" http://localhost:4502/dispatcher/invalidate.cache

レプリケーションエージェント

エージェントのステータスの確認

curl -u <user>:<password> "http://localhost:4502/etc/replication/agents.author/publish/jcr:conten t.queue.json?agent=publish"
http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.js on?agent=publish

エージェントの削除

curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>

エージェントの作成

curl -u <user>:<password> -F "jcr:primaryType=cq:Page" -F "jcr:content/jcr:title=new-replication" -F "jcr:content/sling:resourceType=/libs/cq/replication/components/agent" -F "jcr:content/template=/libs/cq/replication/templates/agent" -F "jcr:content/transportUri=http://localhost:4503/bin/receive?sling:authRequestLogin=1" -F "jcr:content/transportUser=admin" -F "jcr:content/transportPassword={DES}8aadb625ced91ac483390ebc10640cdf"http://localhost:4502/etc/replication/agents.author/replication99

エージェントの一時停止

curl -u <user>:<password> -F "cmd=pause" -F "name=publish"  http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.js on

エージェントキューのクリア

curl -u <user>:<password> -F "cmd=clear" -F "name=publish"  http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.js on

Communities

バッジの割り当てと取り消し

MSRP インデックス再作成

セキュリティ

CRX DE Lite の有効化および無効化

See Enabling CRXDE Lite in AEM for details.

データストアのガベージコレクション

Analytics と Target の統合

シングルサインオン

テストヘッダーの送信

See Single Sign On for details.

一般的なコンテンツ操作の AEM cURL コマンド

次に、コンテンツ操作の AEM cURL コマンドのリストを示します。
次の例では、AEM が localhost のポート 4502 で実行され、ユーザー admin (パスワード admin )を使用していると仮定します。追加のコマンドのプレースホルダーは、山括弧で囲まれています。

ページ管理

ページのアクティベーション

curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="activate" http://localhost:4502/bin/replicate.json

ページのアクティベーション解除

curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="deactivate" http://localhost:4502/bin/replicate.json

ツリーのアクティベーション

curl -u <user>:<password> -F cmd=activate -F ignoredeactivated=true -F onlymodified=true -F path=/content/geometrixx http://localhost:4502/etc/replication/treeactivation.html

ページをロック

curl -u <user>:<password> -X POST -F cmd="lockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand

ページのロックを解除

curl -u <user>:<password> -X POST -F cmd="unlockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand

ページをコピー

curl -u <user>:<password> -F cmd=copyPage -F destParentPath=/path/to/destination/parent -F srcPath=/path/to/source/location http://localhost:4502/bin/wcmcommand

ワークフロー

Sling コンテンツ

フォルダーの作成

curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test

ノードの削除

curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties

ノードの移動

curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl"  -F":dest=/target/parenturl/" https://localhost:4502/content

ノードのコピー

curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl"  -F":dest=/target/parenturl/" https://localhost:4502/content

Sling PostServlet を使用したファイルのアップロード

curl -u <user>:<password> -F"*=@test.properties"  http://localhost:4502/etc/test

Sling PostServlet の使用およびノード名の指定によるファイルのアップロード

curl -u <user>:<password> -F"test2.properties=@test.properties"  http://localhost:4502/etc/test

コンテンツタイプを指定したファイルのアップロード

curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test

アセットの操作

See Assets HTTP API for details.