はじめに
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 を選択します。
Add をクリックします
Click Confidential Application をえらびます
名前を適当に入れて、Next を押します
Configure this application as a client now を選び、Resource Owner を選択します
下にスクロールして、Add Scope を押します
OCEAUTO_xxxx と書かれている OCE インスタンスの行から、[>] を選びます
urn:ope:cec:all
が末尾に書かれているものを選び、Add を押します
Next を押します
Next を押します
Finish を押します
Client ID, and Client Secret が生成されます (記事に書いている Client Secret などは適当な文字列です。実際には使えません)
Client ID : 72a22bc1b00240b285c526dabc8d6aa1
Client Secret : 271ee84d-a511-4e2e-b870-a8c1f496b791
Activate を押して、有効化します
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 で指定した文字列を入力
- 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