技術ブログ
目次
Oracle Storage Cloudは、オブジェクトストレージです。
Amazon S3のバケットに相当する概念としてコンテナがあり、コンテナを指定してオブジェクト、すなわち対象となるデータを保管します。
コンテナを作成しないと、オブジェクトストレージにデータを保管することはできませんので、Oracle Storage Cloudを利用するためには、まずコンテナを作成する必要があります。
Oracle Storage Cloudにおけるコンテナの管理の流れについては、以下のドキュメントに記載があります。
大枠の流れは以下の通りです。
以下に実行例を示します。
Oracle Cloudマイサービス画面からOracle Storage Cloud Serviceを選択すると、Oracle Storage Cloud ServiceのRESTエンドポイントURLを確認できます。
私の環境では、Oracle Storage Cloud ServiceのRESTエンドポイントURLは以下の形式をしていました。
https://.storage.oraclecloud.com/v1/Storage-
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
取得した認証トークンを拡張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]#
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 ~]#