株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

Oracle Storage Cloudでコンテナを作成する

Oracle Storage Cloudは、オブジェクトストレージです。
Amazon S3のバケットに相当する概念としてコンテナがあり、コンテナを指定してオブジェクト、すなわち対象となるデータを保管します。

コンテナを作成しないと、オブジェクトストレージにデータを保管することはできませんので、Oracle Storage Cloudを利用するためには、まずコンテナを作成する必要があります。

Oracle Storage Cloudにおけるコンテナの管理の流れについては、以下のドキュメントに記載があります。

大枠の流れは以下の通りです。

  1. RESTのエンドポイントURLを確認する
  2. 認証用のREST APIにcurlコマンドでリクエストを発行して、認証トークンを取得する
  3. 取得した認証トークンを指定してコンテナ作成用のREST APIにリクエストを発行して、コンテナを作成する

以下に実行例を示します。

1. RESTのエンドポイントURLを確認

Oracle Cloudマイサービス画面からOracle Storage Cloud Serviceを選択すると、Oracle Storage Cloud ServiceのRESTエンドポイントURLを確認できます。

storagecloud_endpointurl.png

私の環境では、Oracle Storage Cloud ServiceのRESTエンドポイントURLは以下の形式をしていました。

https://.storage.oraclecloud.com/v1/Storage-

2. 認証トークンを取得

RESTエンドポイントURLを基に、認証用のRESTエンドポイントURLを作成します。

https://.storage.oraclecloud.com/v1/Storage-
    ↓
https://.storage.oraclecloud.com/auth/v1.0

認証用のRESTエンドポイントURLに対して、拡張ヘッダ情報を指定してリクエストを発行し、認証トークン(X-Auth-Token、X-Storage-Token)を取得します。

[root@csfs1 tmp]# ORACLECLOUD_USER='ryota.watabe@cosol.jp'
[root@csfs1 tmp]# ORACLECLOUD_PWD='password_string'
[root@csfs1 tmp]# ORACLECLOUD_IDDOMAIN=jpcosolxxxx
[root@csfs1 tmp]# STORAGECLOUD_ENDPOINT=https://jpcosolxxxx.storage.oraclecloud.com
[root@csfs1 tmp]#
[root@csfs1 tmp]# curl -s -X GET \
>   -H "X-Storage-User:Storage-${ORACLECLOUD_IDDOMAIN}:${ORACLECLOUD_USER}" \
>   -H "X-Storage-Pass:${ORACLECLOUD_PWD}" \
>   ${STORAGECLOUD_ENDPOINT}/auth/v1.0
[root@csfs1 tmp]# curl --include -s -X GET \
>   -H "X-Storage-User:Storage-${ORACLECLOUD_IDDOMAIN}:${ORACLECLOUD_USER}" \
>   -H "X-Storage-Pass:${ORACLECLOUD_PWD}" \
>   ${STORAGECLOUD_ENDPOINT}/auth/v1.0
HTTP/1.1 200 OK
Date: Mon, 07 Dec 2015 08:08:04 GMT
X-Auth-Token: AUTH_xxxxxxxxxx
X-Storage-Token: AUTH_xxxxxxxxxx
X-Storage-Url: https://storage.us2.oraclecloud.com/v1/Storage-jpcosolxxxx
Content-Length: 0
Server: Oracle-Storage-Cloud-Service

3. コンテナを作成

取得した認証トークンを拡張HTTPヘッダX-Auth-Token:に指定して、
コンテナ作成用のRESTエンドポイントURLにリクエストを発行して、コンテナを作成します。

[root@csfs1 tmp]# STORAGECLOUD_ENDPOINT2=${STORAGECLOUD_ENDPOINT}/v1/Storage-${ORACLECLOUD_IDDOMAIN}
[root@csfs1 tmp]# CONTANER_NAME=container02
[root@csfs1 tmp]# X_AUTH_TOKEN=AUTH_xxxxxxxxxx
[root@csfs1 tmp]# 
[root@csfs1 tmp]# curl -v --silent -X PUT \
>   -H "X-Auth-Token: ${X_AUTH_TOKEN}"  \
>   ${STORAGECLOUD_ENDPOINT2}/${CONTANER_NAME}
* About to connect() to jpcosolxxxx.storage.oraclecloud.com port 443 (#0)
*   Trying 160.34.0.231... connected
* Connected to jpcosolxxxx.storage.oraclecloud.com (160.34.0.231) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_RSA_WITH_AES_128_CBC_SHA
* Server certificate:
*       subject: CN=*.storage.oraclecloud.com,O=Oracle Corporation,L=Redwood Shores,ST=California,C=US
*       start date: Aug 07 00:00:00 2015 GMT
*       expire date: Oct 05 23:59:59 2016 GMT
*       common name: *.storage.oraclecloud.com
*       issuer: CN=VeriSign Class 3 Secure Server CA - G3,OU=Terms of use at https://www.verisign.com/rpa (c)10,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
> PUT /v1/Storage-jpcosolxxxx/container02 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: jpcosolxxxx.storage.oraclecloud.com
> Accept: */*
> X-Auth-Token: AUTH_xxxxxxxxxx
>
< HTTP/1.1 201 Created
< X-Trans-Id: txf73c687882b04d21a0cb6-0056653ef9ga
< Date: Mon, 07 Dec 2015 08:10:33 GMT
< Connection: keep-alive
< X-Last-Modified-Timestamp: 1449475833.62725
< Content-Type: text/html;charset=UTF-8
< Content-Length: 0
< Server: Oracle-Storage-Cloud-Service
<
* Connection #0 to host jpcosolxxxx.storage.oraclecloud.com left intact
* Closing connection #0
[root@csfs1 tmp]#

4. コンテナを確認

Oracle Storage Cloud ServiceのRESTエンドポイントURLにGETリクエストを発行すると、コンテナの一覧を確認できます。

[root@l6vmmgr1 ~]# curl --silent -X GET -H "X-Auth-Token: ${X_AUTH_TOKEN}"    ${STORAGECLOUD_ENDPOINT2}
container01
container02[root@l6vmmgr1 ~]#

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ