はじめに
Oracle Cloud Infrastructure(以下OCI) では、Oracle Content and Experience Cloud(以下OCE) という名前のクラウド型コンテンツ管理が提供されています。OCE では、Webブラウザを使用した GUI の操作はもちろん、REST API が提供されています。
REST API を実行するための方法が若干わかりにくかったので、備忘録として記事にします。
※ 注意事項 : Basic 認証は、Documentに書かれていない方法となり、いつこの機能が削除されるかわかりません。IDCS の OAuth Token を使用した認証を推奨いたします。IDCS の OAuth Token を使った記事は、別の記事をアップロードします。
OAuth Token の記事を書きました。こちらを使うのがお勧めです。
https://qiita.com/sugimount/items/8f47bb1a8931e1365e0d
REST API の認証方式
OCE で REST API を実行するには、大きくわけて3つの方式があります。
- OAuth Token の取得 (Webブラウザベースで、手動取得)
- Resource Owner をつかった OAuth Token
- ID, Password を使用した Basic 認証
今回の記事では、3個目の ID, Password を使用した Basic 認証方式を使用して、REST API を実行していきます。
Basic 認証の実行方法
OCE にログインする時に使う、ID と Password を使います。IDCS と連携している場合は、IDCS 上の ID と Password でも問題ありません。base64 で ID と Password を encode します。
Linux でのコマンドを使用しています。
> echo -n "userid:yourpassword" | base64 -w 0
dXNlcmlkOnlvdXJwYXNzd29yZA==
dXNlcmlkOnlvdXJwYXNzd29yZA==
が REST API に必要な文字列です。メモっておきます。
REST API 実行
ドキュメント用 REST API を実行して、自分自身のフォルダからファイルを見つけて、ダウンロードを行います。
まず、自分自身の Home Directory に含まれる情報を取得します。ポイントは、HTTP Request の Header に、Authorization: Basic <your_secret>
を入れている箇所です。ID, Password を Base64 でエンコードした文字列を入れて認証を行っています。
また、JSON を見やすくするための jq コマンドも使っています。jq コマンドが入っていない場合は、適当にぐぐってインストールするのが便利でお勧めです。
URL と Basic 認証の部分を適宜環境に合わせて変更してください。
curl -s -H 'Authorization: Basic dXNlcmlkOnlvdXJwYXNzd29yZA==' \
-H "Content-Type: application/json" \
-X GET 'https://<your_cec_host>.cec.ocp.oraclecloud.com/documents/api/1.2/folders/items?orderby=name:asc&limit=100&offset=0' | jq .
実行例
自分自身の Home Directory に有るアイテムを取得しています。2個の Folder が存在していることが分かりますね。
{
"count": "2",
"errorCode": "0",
"hasMore": "0",
"limit": "100",
"offset": "0",
"ownerFolderID": "self",
"totalResults": "2",
"items": [
{
"type": "folder",
"id": "F8776D0D2E82E51A8E6FBB47768FA1867BE0DD00F1D9",
"parentID": "self",
"name": "dir1",
"ownedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"modifiedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdTime": "2020-02-29T16:09:39Z",
"modifiedTime": "2020-02-29T16:09:39Z",
"size": "65427",
"childItemsCount": "2"
},
{
"type": "folder",
"id": "FBBFB80770D60CAC84906C67D777999E1C4C95B392E4",
"parentID": "self",
"name": "dir2",
"ownedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"modifiedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdTime": "2020-03-01T14:53:07Z",
"modifiedTime": "2020-03-01T14:53:07Z",
"size": "0",
"childItemsCount": "0"
}
]
}
では次に、2個のフォルダから、1個選んで、そのフォルダに含まれるアイテムを表示します。Folder の ID F8776D0D2E82E51A8E6FBB47768FA1867BE0DD00F1D9
を使用します。
curl -s -H 'Authorization: Basic dXNlcmlkOnlvdXJwYXNzd29yZA==' \
-H "Content-Type: application/json" \
-X GET 'https://<your_cec_host>.cec.ocp.oraclecloud.com/documents/api/1.2/folders/F8776D0D2E82E51A8E6FBB47768FA1867BE0DD00F1D9/items' | jq .
実行例
1582820400987.png
というファイルが items 配下に存在しています。
{
"childItemsCount": "2",
"count": "2",
"createdBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdTime": "2020-02-29T16:09:39Z",
"errorCode": "0",
"hasMore": "0",
"id": "F8776D0D2E82E51A8E6FBB47768FA1867BE0DD00F1D9",
"limit": "100",
"modifiedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"modifiedTime": "2020-02-29T16:09:39Z",
"name": "dir1",
"offset": "0",
"ownedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"parentID": "self",
"size": "65427",
"totalResults": "2",
"type": "folder",
"items": [
{
"type": "folder",
"id": "FEF11D701F221746F510F7D7B091BBE332B6F43FC835",
"parentID": "F8776D0D2E82E51A8E6FBB47768FA1867BE0DD00F1D9",
"name": "mydir1",
"ownedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdBy": {
"displayName": "Web-2020-03-01",
"id": "LWeb-2020-03-01|10.244.10.6",
"type": "user"
},
"modifiedBy": {
"displayName": "Web-2020-03-01",
"id": "LWeb-2020-03-01|10.244.10.6",
"type": "user"
},
"createdTime": "2020-03-01T03:51:58Z",
"modifiedTime": "2020-03-01T03:51:58Z",
"size": "0",
"childItemsCount": "0"
},
{
"type": "file",
"id": "D0467C615FB6092011B2EA8A2F44E6D8201637EF5D5E",
"parentID": "F8776D0D2E82E51A8E6FBB47768FA1867BE0DD00F1D9",
"name": "1582820400987.png",
"ownedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"modifiedBy": {
"displayName": "your name",
"id": "U8CE9A14D7A76CE864E70F82D472DB0DD1C9",
"loginName": "your login id",
"type": "user"
},
"createdTime": "2020-02-29T16:13:36Z",
"modifiedTime": "2020-02-29T16:13:36Z",
"version": "1",
"mimeType": "image/png",
"size": "65427"
}
]
では、次にそのファイルをダウンロードしてみます。
実行したディレクトリに、donwloadfile.jpeg
ファイルがダウンロードされます。
curl -s -H 'Authorization: Basic dXNlcmlkOnlvdXJwYXNzd29yZA==' \
-H "Content-Type: application/json" \
-X GET 'https://<your_cec_host>.cec.ocp.oraclecloud.com/documents/api/1.2/files/D0467C615FB6092011B2EA8A2F44E6D8201637EF5D5E/data' \
-o downloadfile.jpg
参考URL
Quick Start
https://docs.oracle.com/cd/E83857_01/paas/content-cloud/rest-api-documents/QuickStart.html
Top Page
https://docs.oracle.com/cd/E83857_01/paas/content-cloud/rest-api-documents/index.html