5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Oracle Cloud] クラウド型コンテンツ管理サービス OCE で REST API を実行してみた (Basic認証編)

Last updated at Posted at 2020-03-03

はじめに

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

5
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?