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 を実行してみた (OAuth認証編)

Last updated at Posted at 2020-03-03

はじめに

Oracle Cloud Infrastructure(以下OCI) では、Oracle Content and Experience Cloud(以下OCE) という名前のクラウド型コンテンツ管理が提供されています。前回の記事では、Basic 認証での REST API の実行方法をご紹介しました。Basic 認証の方法は、Document には明記されていない方法となっていて、いつ機能が削除されるか不明です。今回は、Document に記載されている、OAuth Token を使用した REST API の方法をご紹介します。

REST API の認証方式

OCE で REST API を実行するには、大きくわけて3つの方式があります。

  • OAuth Token の取得 (Webブラウザベースで、手動取得)
  • Resource Owner をつかった OAuth Token
  • ID, Password を使用した Basic 認証

今回の記事では、2個目の [Resource Owner をつかった OAuth Token] を使用して、REST API を実行していきます。

IDCS の設定

OCI では、IDCS (Identity Cloud Service) と呼ばれるクラウド型ID管理サービスを提供しています。OCE の REST API を実行するためには、IDCS から OAuth Token を取得します。OAuth Token を取得するために、IDCS 上で事前の管理設定作業が必要です。

IDCS の画面を開き、メニューから Applications を選択します。

1583274700601.png

Add をクリックします

1583164043911.png

Click Confidential Application をえらびます

1583164091264.png

名前を適当に入れて、Next を押します

1583164135450.png

Configure this application as a client now を選び、Resource Owner を選択します

1583164180708.png

下にスクロールして、Add Scope を押します

1583164258351.png

OCEAUTO_xxxx と書かれている OCE インスタンスの行から、[>] を選びます

1583164311746.png

urn:ope:cec:all が末尾に書かれているものを選び、Add を押します

1583164351573.png

Next を押します

1583164392062.png

Next を押します

1583164416371.png

Finish を押します

1583164439958.png

Client ID, and Client Secret が生成されます (記事に書いている Client Secret などは適当な文字列です。実際には使えません)

Client ID : 72a22bc1b00240b285c526dabc8d6aa1

Client Secret : 271ee84d-a511-4e2e-b870-a8c1f496b791

1583164461912.png

Activate を押して、有効化します

1583164732731.png

OAuth Token の取得

IDCS で生成した、Client ID と、Client Secret を使用して、Base64 でエンコードをします。

> echo -n "72a22bc1b00240b285c526dabc8d6aa1:271ee84d-a511-4e2e-b870-a8c1f496b791" | base64 -w 0
NzJhMjJiYzFiMDAyNDBiMjg1YzUyNmRhYmM4ZDZhYTk6MjcxZWU4NGQtYTUxMS00ZTJlLWI4NzAtYThjMWY0OTZiNzl1

IDCS のエンドポイント宛に、OAuth Token の取得をリクエストします。ポイントはつぎのとおりです。

  • Request Header に Authorization: Basic <エンコード後の文字列> を追加する
  • POST Request の Body に、grant_type=password... で始まる文字列を追加する

POST Request の Body に記載するパラメータは次の物を入れます

  • grant_type : password
  • scope : IDCS の Select Scope で指定した文字列を入力

1583275402434.png

  • username : OCE にログインする時に使用する、IDCS 上の ID を指定。 yourname@address.com のようにメールアドレスであることが多いです
  • password : 上記の ID に紐づく、IDCS 上のパスワードを指定します。注意点として、パスワードの中に % のようなパース出来ない文字列が有る場合は、エスケープする必要があります。もし記号に不安があるときは、パスワードを変更して、パースが出来なさそうな記号を含めないパスワードとすると良いでしょう。

コマンド例

curl -v -i \
-H 'Authorization: Basic NzJhMjJiYzFiMDAyNDBiMjg1YzUyNmRhYmM4ZDZhYTk6MjcxZWU4NGQtYTUxMS00ZTJlLWI4NzAtYThjMWY0OTZiNzl1' \
-d 'grant_type=password&scope=https://712C77D006504F58821E88AC6ECC03A6.cec.ocp.oraclecloud.com:443/urn:opc:cec:all&username=yourname@address.com&password=yourpassword' \
-X POST https://<your-idcs-instance>.identity.oraclecloud.com/oauth2/v1/token

実行例

末尾に access_token が返ってきます。これを使用して、REST API を実行します

> curl -v -i \
  -H 'Authorization: Basic NzJhMjJiYzFiMDAyNDBiMjg1YzUyNmRhYmM4ZDZhYTk6MjcxZWU4NGQtYTUxMS00ZTJlLWI4NzAtYThjMWY0OTZiNzl1' \
  -d 'grant_type=password&scope=https://712C77D006504F58821E88AC6ECC03A6.cec.ocp.oraclecloud.com:443/urn:opc:cec:all&username=yourname@address.com&password=yourpassword' \
  -X POST https://<your-idcs-instance>.identity.oraclecloud.com/oauth2/v1/token
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 192.29.38.183...
* TCP_NODELAY set
* Connected to <your-idcs-instance>.identity.oraclecloud.com (192.29.38.183) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=Redwood City; O=Oracle Corporation; OU=Oracle PAASCS AMER-CS; CN=*.identity.oraclecloud.com
*  start date: Oct 10 00:00:00 2019 GMT
*  expire date: Jan  8 12:00:00 2021 GMT
*  subjectAltName: host "<your-idcs-instance>.identity.oraclecloud.com" matched cert's "*.identity.oraclecloud.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert SHA2 Secure Server CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55ba72224580)
> POST /oauth2/v1/token HTTP/2
> Host: <your-idcs-instance>.identity.oraclecloud.com
> User-Agent: curl/7.58.0
> Accept: */*
> Authorization: Basic NzJhMjJiYzFiMDAyNDBiMjg1YzUyNmRhYmM4ZDZhYTk6MjcxZWU4NGQtYTUxMS00ZTJlLWI4NzAtYThjMWY0OTZiNzl1
> Content-Length: 169
> Content-Type: application/x-www-form-urlencoded
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
* We are completely uploaded and fine
< HTTP/2 200 
HTTP/2 200
< cache-control: no-store
cache-control: no-store
< content-type: application/json;charset=UTF-8
content-type: application/json;charset=UTF-8
< date: Tue, 03 Mar 2020 22:47:21 GMT
date: Tue, 03 Mar 2020 22:47:21 GMT
< pragma: no-cache
pragma: no-cache
< server: Oracle Identity Cloud Service
server: Oracle Identity Cloud Service
< strict-transport-security: max-age=315360000; includeSubdomains
strict-transport-security: max-age=315360000; includeSubdomains
< vary: Accept-Encoding
vary: Accept-Encoding
< via: 1.1 net-idcs-config
via: 1.1 net-idcs-config
< x-content-type-options: nosniff
x-content-type-options: nosniff
< x-oracle-dms-ecid: XSl_F0zkD00000000
x-oracle-dms-ecid: XSl_F0zkD00000000
< x-oracle-dms-rid: 0:1
x-oracle-dms-rid: 0:1
< x-xss-protection: 1; mode=block
x-xss-protection: 1; mode=block
< content-length: 2239
content-length: 2239

<
{"access_token":"eyJ4NXQjUzI1NiI6Ik9oNktOanV5OUZwbThZa1BCN2Q0SjlfcHB1NmI1VlRpOUVlM3g5RFc4ZWciLCJ4NXQiOiJLV3FmcW5vNTRENUk2ZVhGVFNGejdNY2ozNUUiLCJraWQiOiJTSUdOSU5HX0tFWSIsImFsZyI6IlJTMjU2In1.eyJ1c2VyX3R6IjoiQW1lcmljYVwvQ2hpY2FnbyIsInN1YiI6InN1Z3VydS5zdWdpeWFtYUBvcmFjbGUuY29tIiwidXNlcl9sb2NhbGUiOiJlbiIsInVzZXIudGVuYW50Lm5hbWUiOiJpZGNzLWEyMmQyMWM3YmIyYjRkYjBiZDU3YmQ1OGU3ZDQ4MjMzIiwiaXNzIjoiaHR0cHM6XC9cL2lkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbVwvIiwidXNlcl90ZW5hbnRuYW1lIjoiaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMyIsImNsaWVudF9pZCI6IjcyYTIyYmMxYjAwMjQwYjI4NWM1MjZkYWJjOGQ2YWE5Iiwic3ViX3R5cGUiOiJ1c2VyIiwic2NvcGUiOiJ1cm46b3BjOmNlYzphbGwiLCJjbGllbnRfdGVuYW50bmFtZSI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJ1c2VyX2xhbmciOiJlbiIsImV4cCI6MTU4Mzg4MDQ0MSwiaWF0IjoxNTgzMjc1NjQxLCJjbGllbnRfZ3VpZCI6ImE4NzljYjRlODFjMTQ3OTY5NTg4NzYzMzBjMDVjODJjIiwiY2xpZW50X25hbWUiOiJvY2VhcGl0ZXN0MyIsInRlbmFudCI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJqdGkiOiIxZTNmZTk0My0zZGQxLTRmNzktODA5Yi1mMmExMGNhYWQzNTQiLCJ1c2VyX2Rpc3BsYXluYW1lIjoiU3VndXJ1IFN1Z2l5YW1hIiwic3ViX21hcHBpbmdhdHRyIjoidXNlck5hbWUiLCJwcmltVGVuYW50Ijp0cnVlLCJ0b2tfdHlwZSI6IkFUIiwiY2FfZ3VpZCI6ImNhY2N0LTAxOWI0NDhkNThkYzQ5MjBhMWJiNjg3MmYxYjRhZmFmIiwiYXVkIjpbInVybjpvcGM6bGJhYXM6bG9naWNhbGd1aWQ9NzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC8iLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9kb2N1bWVudHNcL2ludGVncmF0aW9uXC9zb2NpYWwiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9vc25cL3NvY2lhbFwvYXBpIl0sInVzZXJfaWQiOiI2YjE4ZTE5ZDUwNzA0ODdmYmQyZjYxMDdjYTc0MDEwYiIsInRlbmFudF9pc3MiOiJodHRwczpcL1wvaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMy5pZGVudGl0eS5vcmFjbGVjbG91ZC5jb206NDQzIn0.XbmPc5qxjCBlFOP2y_wlNJ_gRkEHAtQUASqaeDzEnjuXimNRRt5AxZoAgnQs67EK5oi4A0cpAxz4b8kOPcTSWYg9UCS63E7dEWDb-yeF5AP_bLG-nQvetTgeEUsEUyCHowDAAzcvsj04qLhjuFCAKQJOz3jPWlHZFmiQ5OX0hX_6Z0PtkM-6v2B5cNhMa5EKTy_* Connection #0 to host <your-idcs-instance>.identity.oraclecloud.com left intact
g6nqI146-di9LavqqkcUkrtes3zhvGozDDzOThTYxq-I7qW7h0UyjV-H5ZwlC9sY202-aJLAgtib-IUAIEB2023du8j1Ru0OPhMUu7rO_iEKHraerQk1689yg30Tb41v-Sx1pY6eyUH_7YcGWWQ","token_type":"Bearer","expires_in":604800}

REST API 実行

ドキュメント用 REST API を実行して、自分自身のフォルダからファイルを見つけて、ダウンロードを行います。

まず、自分自身の Home Directory に含まれる情報を取得します。ポイントは、HTTP Request の Header に、Authorization: Bearer <access_token> を入れている箇所です。IDCS から取得した OAuth Token を文字列を入れて認証を行っています。

また、JSON を見やすくするための jq コマンドも使っています。jq コマンドが入っていない場合は、適当にぐぐってインストールするのが便利でお勧めです。

環境に合わせて変更してください。

curl -s -H 'Authorization: Bearer eyJ4NXQjUzI1NiI6Ik9oNktOanV5OUZwbThZa1BCN2Q0SjlfcHB1NmI1VlRpOUVlM3g5RFc4ZWciLCJ4NXQiOiJLV3FmcW5vNTRENUk2ZVhGVFNGejdNY2ozNUUiLCJraWQiOiJTSUdOSU5HX0tFWSIsImFsZyI6IlJTMjU2In1.eyJ1c2VyX3R6IjoiQW1lcmljYVwvQ2hpY2FnbyIsInN1YiI6InN1Z3VydS5zdWdpeWFtYUBvcmFjbGUuY29tIiwidXNlcl9sb2NhbGUiOiJlbiIsInVzZXIudGVuYW50Lm5hbWUiOiJpZGNzLWEyMmQyMWM3YmIyYjRkYjBiZDU3YmQ1OGU3ZDQ4MjMzIiwiaXNzIjoiaHR0cHM6XC9cL2lkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbVwvIiwidXNlcl90ZW5hbnRuYW1lIjoiaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMyIsImNsaWVudF9pZCI6IjcyYTIyYmMxYjAwMjQwYjI4NWM1MjZkYWJjOGQ2YWE5Iiwic3ViX3R5cGUiOiJ1c2VyIiwic2NvcGUiOiJ1cm46b3BjOmNlYzphbGwiLCJjbGllbnRfdGVuYW50bmFtZSI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJ1c2VyX2xhbmciOiJlbiIsImV4cCI6MTU4MzgyMDY3NywiaWF0IjoxNTgzMjE1ODc3LCJjbGllbnRfZ3VpZCI6ImE4NzljYjRlODFjMTQ3OTY5NTg4NzYzMzBjMDVjODJjIiwiY2xpZW50X25hbWUiOiJvY2VhcGl0ZXN0MyIsInRlbmFudCI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJqdGkiOiIxZTZkNjI4Yy0xMmIyLTRiYzUtOTk2Mi02ZmU2M2FmNDQxMzciLCJ1c2VyX2Rpc3BsYXluYW1lIjoiU3VndXJ1IFN1Z2l5YW1hIiwic3ViX21hcHBpbmdhdHRyIjoidXNlck5hbWUiLCJwcmltVGVuYW50Ijp0cnVlLCJ0b2tfdHlwZSI6IkFUIiwiY2FfZ3VpZCI6ImNhY2N0LTAxOWI0NDhkNThkYzQ5MjBhMWJiNjg3MmYxYjRhZmFmIiwiYXVkIjpbInVybjpvcGM6bGJhYXM6bG9naWNhbGd1aWQ9NzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC8iLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9kb2N1bWVudHNcL2ludGVncmF0aW9uXC9zb2NpYWwiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9vc25cL3NvY2lhbFwvYXBpIl0sInVzZXJfaWQiOiI2YjE4ZTE5ZDUwNzA0ODdmYmQyZjYxMDdjYTc0MDEwYiIsInRlbmFudF9pc3MiOiJodHRwczpcL1wvaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMy5pZGVudGl0eS5vcmFjbGVjbG91ZC5jb206NDQzIn0.g3szQzufb8wH2Yxwrq-K0tTlNuFPge6SCkarC87zDARKf_SbyAOBYBBIzlytH92DgzlF-XCNOEbg4EJoaZs3vdkiMdhVP0SHzf5-SVywIzK0ZHhne2iEDZEqIzUVjWDVThJzJBDOFTKURTqjnRpYNfxJfv4YPExs4iYdfir-ozQUJo6wdRZCUHmmTp23msm0URfLQVdxZBNZSbVAaXcx_o3c9V4ZnRDuIPDYwxtm3Ys0BI3GR-0fQZuEGcRdObjBLJJHilvfO9ybkb9A-d7XxXY2PYg2-8qlt6gV5TRiIwXxus_wpIk9BNUxMsmdqEMXLT4Xc-PmoJmriWTX5qxzbQ' \
-H "Content-Type: application/json" \
-X GET 'https://<your_oce_instance>.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: Bearer eyJ4NXQjUzI1NiI6Ik9oNktOanV5OUZwbThZa1BCN2Q0SjlfcHB1NmI1VlRpOUVlM3g5RFc4ZWciLCJ4NXQiOiJLV3FmcW5vNTRENUk2ZVhGVFNGejdNY2ozNUUiLCJraWQiOiJTSUdOSU5HX0tFWSIsImFsZyI6IlJTMjU2In1.eyJ1c2VyX3R6IjoiQW1lcmljYVwvQ2hpY2FnbyIsInN1YiI6InN1Z3VydS5zdWdpeWFtYUBvcmFjbGUuY29tIiwidXNlcl9sb2NhbGUiOiJlbiIsInVzZXIudGVuYW50Lm5hbWUiOiJpZGNzLWEyMmQyMWM3YmIyYjRkYjBiZDU3YmQ1OGU3ZDQ4MjMzIiwiaXNzIjoiaHR0cHM6XC9cL2lkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbVwvIiwidXNlcl90ZW5hbnRuYW1lIjoiaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMyIsImNsaWVudF9pZCI6IjcyYTIyYmMxYjAwMjQwYjI4NWM1MjZkYWJjOGQ2YWE5Iiwic3ViX3R5cGUiOiJ1c2VyIiwic2NvcGUiOiJ1cm46b3BjOmNlYzphbGwiLCJjbGllbnRfdGVuYW50bmFtZSI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJ1c2VyX2xhbmciOiJlbiIsImV4cCI6MTU4MzgyMDY3NywiaWF0IjoxNTgzMjE1ODc3LCJjbGllbnRfZ3VpZCI6ImE4NzljYjRlODFjMTQ3OTY5NTg4NzYzMzBjMDVjODJjIiwiY2xpZW50X25hbWUiOiJvY2VhcGl0ZXN0MyIsInRlbmFudCI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJqdGkiOiIxZTZkNjI4Yy0xMmIyLTRiYzUtOTk2Mi02ZmU2M2FmNDQxMzciLCJ1c2VyX2Rpc3BsYXluYW1lIjoiU3VndXJ1IFN1Z2l5YW1hIiwic3ViX21hcHBpbmdhdHRyIjoidXNlck5hbWUiLCJwcmltVGVuYW50Ijp0cnVlLCJ0b2tfdHlwZSI6IkFUIiwiY2FfZ3VpZCI6ImNhY2N0LTAxOWI0NDhkNThkYzQ5MjBhMWJiNjg3MmYxYjRhZmFmIiwiYXVkIjpbInVybjpvcGM6bGJhYXM6bG9naWNhbGd1aWQ9NzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC8iLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9kb2N1bWVudHNcL2ludGVncmF0aW9uXC9zb2NpYWwiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9vc25cL3NvY2lhbFwvYXBpIl0sInVzZXJfaWQiOiI2YjE4ZTE5ZDUwNzA0ODdmYmQyZjYxMDdjYTc0MDEwYiIsInRlbmFudF9pc3MiOiJodHRwczpcL1wvaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMy5pZGVudGl0eS5vcmFjbGVjbG91ZC5jb206NDQzIn0.g3szQzufb8wH2Yxwrq-K0tTlNuFPge6SCkarC87zDARKf_SbyAOBYBBIzlytH92DgzlF-XCNOEbg4EJoaZs3vdkiMdhVP0SHzf5-SVywIzK0ZHhne2iEDZEqIzUVjWDVThJzJBDOFTKURTqjnRpYNfxJfv4YPExs4iYdfir-ozQUJo6wdRZCUHmmTp23msm0URfLQVdxZBNZSbVAaXcx_o3c9V4ZnRDuIPDYwxtm3Ys0BI3GR-0fQZuEGcRdObjBLJJHilvfO9ybkb9A-d7XxXY2PYg2-8qlt6gV5TRiIwXxus_wpIk9BNUxMsmdqEMXLT4Xc-PmoJmriWTX5qxzbQ' \
-H "Content-Type: application/json" \
-X GET 'https://<your_oce_instance>.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: Bearer eyJ4NXQjUzI1NiI6Ik9oNktOanV5OUZwbThZa1BCN2Q0SjlfcHB1NmI1VlRpOUVlM3g5RFc4ZWciLCJ4NXQiOiJLV3FmcW5vNTRENUk2ZVhGVFNGejdNY2ozNUUiLCJraWQiOiJTSUdOSU5HX0tFWSIsImFsZyI6IlJTMjU2In0.eyJ1c2VyX3R6IjoiQW1lcmljYVwvQ2hpY2FnbyIsInN1YiI6InN1Z3VydS5zdWdpeWFtYUBvcmFjbGUuY29tIiwidXNlcl9sb2NhbGUiOiJlbiIsInVzZXIudGVuYW50Lm5hbWUiOiJpZGNzLWEyMmQyMWM3YmIyYjRkYjBiZDU3YmQ1OGU3ZDQ4MjMzIiwiaXNzIjoiaHR0cHM6XC9cL2lkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbVwvIiwidXNlcl90ZW5hbnRuYW1lIjoiaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMyIsImNsaWVudF9pZCI6IjcyYTIyYmMxYjAwMjQwYjI4NWM1MjZkYWJjOGQ2YWE5Iiwic3ViX3R5cGUiOiJ1c2VyIiwic2NvcGUiOiJ1cm46b3BjOmNlYzphbGwiLCJjbGllbnRfdGVuYW50bmFtZSI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJ1c2VyX2xhbmciOiJlbiIsImV4cCI6MTU4MzgyMDY3NywiaWF0IjoxNTgzMjE1ODc3LCJjbGllbnRfZ3VpZCI6ImE4NzljYjRlODFjMTQ3OTY5NTg4NzYzMzBjMDVjODJjIiwiY2xpZW50X25hbWUiOiJvY2VhcGl0ZXN0MyIsInRlbmFudCI6ImlkY3MtYTIyZDIxYzdiYjJiNGRiMGJkNTdiZDU4ZTdkNDgyMzMiLCJqdGkiOiIxZTZkNjI4Yy0xMmIyLTRiYzUtOTk2Mi02ZmU2M2FmNDQxMzciLCJ1c2VyX2Rpc3BsYXluYW1lIjoiU3VndXJ1IFN1Z2l5YW1hIiwic3ViX21hcHBpbmdhdHRyIjoidXNlck5hbWUiLCJwcmltVGVuYW50Ijp0cnVlLCJ0b2tfdHlwZSI6IkFUIiwiY2FfZ3VpZCI6ImNhY2N0LTAxOWI0NDhkNThkYzQ5MjBhMWJiNjg3MmYxYjRhZmFmIiwiYXVkIjpbInVybjpvcGM6bGJhYXM6bG9naWNhbGd1aWQ9NzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC8iLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9kb2N1bWVudHNcL2ludGVncmF0aW9uXC9zb2NpYWwiLCJodHRwczpcL1wvNzEyQzc3RDAwNjUwNEY1ODgyMUU4OEFDNkVDQzAzQTYuY2VjLm9jcC5vcmFjbGVjbG91ZC5jb206NDQzXC9vc25cL3NvY2lhbFwvYXBpIl0sInVzZXJfaWQiOiI2YjE4ZTE5ZDUwNzA0ODdmYmQyZjYxMDdjYTc0MDEwYiIsInRlbmFudF9pc3MiOiJodHRwczpcL1wvaWRjcy1hMjJkMjFjN2JiMmI0ZGIwYmQ1N2JkNThlN2Q0ODIzMy5pZGVudGl0eS5vcmFjbGVjbG91ZC5jb206NDQzIn0.g3szQzufb8wH2Yxwrq-K0tTlNuFPge6SCkarC87zDARKf_SbyAOBYBBIzlytH92DgzlF-XCNOEbg4EJoaZs3vdkiMdhVP0SHzf5-SVywIzK0ZHhne2iEDZEqIzUVjWDVThJzJBDOFTKURTqjnRpYNfxJfv4YPExs4iYdfir-ozQUJo6wdRZCUHmmTp23msm0URfLQVdxZBNZSbVAaXcx_o3c9V4ZnRDuIPDYwxtm3Ys0BI3GR-0fQZuEGcRdObjBLJJHilvfO9ybkb9A-d7XxXY2PYg2-8qlt6gV5TRiIwXxus_wpIk9BNUxMsmdqEMXLT4Xc-PmoJmriWTX5qxzbQ' \
-H "Content-Type: application/json" \
-X GET 'https://sugitest1-ocetest1.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
0

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?