OracleのブログにAdrian Pngさんが、Better File Storage in Oracle Cloudとして、Oracle APEXでOCI - Oracle Cloud Infrastructure - のオブジェクト・ストレージを操作するアプリケーションの作り方を寄稿しています。
Adrian PngさんはカナダのInsumという、Oracle APEXやオラクルのパートナーさんのメンバーで、Oracle APEXのコミュニティーへの有功者へこちらのコインを配布している方です。また、このブログポストの謝辞には、こちらもオラクルのパートナーであるAccenture EnkitecのメンバーであるChristoph Ruepprichさんと、オラクルのCarsten Czarskiの2名の名前がリストされています。InsumとAccenture Enkitecの両方ともOracle APEXとOCIの両方を使っているので、こういったOCI上のサービスのAPI呼び出しはニーズとして高いのでしょう。
さて、Oracle APEX 19.2より、Web資格証明のタイプにOracle Cloud Infrastructure (OCI)が追加されていて、これでOracle APEXからOCIのAPI呼び出しが容易になっています。
また、Oracle Cloudで提供されているAutonomous Databaseのインスタンスに構成されているOracle APEXも、19.2へ順次アップグレードされています。ですので、Always Freeのサービスとして提供されているAutonomous DatabaseのインスタンスのOracle APEXを使って、上記のアプリケーション作成を行ってみました。
元にした記事はOCIやOracle APEXの知識を前提としているところがあります。その部分は補完しつつ、元記事の内容をそのまま使う部分は重複しないようにしたいと思います。
Adrian PngさんはカナダのInsumという、Oracle APEXやオラクルのパートナーさんのメンバーで、Oracle APEXのコミュニティーへの有功者へこちらのコインを配布している方です。また、このブログポストの謝辞には、こちらもオラクルのパートナーであるAccenture EnkitecのメンバーであるChristoph Ruepprichさんと、オラクルのCarsten Czarskiの2名の名前がリストされています。InsumとAccenture Enkitecの両方ともOracle APEXとOCIの両方を使っているので、こういったOCI上のサービスのAPI呼び出しはニーズとして高いのでしょう。
さて、Oracle APEX 19.2より、Web資格証明のタイプにOracle Cloud Infrastructure (OCI)が追加されていて、これでOracle APEXからOCIのAPI呼び出しが容易になっています。
また、Oracle Cloudで提供されているAutonomous Databaseのインスタンスに構成されているOracle APEXも、19.2へ順次アップグレードされています。ですので、Always Freeのサービスとして提供されているAutonomous DatabaseのインスタンスのOracle APEXを使って、上記のアプリケーション作成を行ってみました。
(2022年12月1日追記:Autonomous Database上のOracle APEX 22.2で作業を再度実施し、記事を更新しています。)
元にした記事はOCIやOracle APEXの知識を前提としているところがあります。その部分は補完しつつ、元記事の内容をそのまま使う部分は重複しないようにしたいと思います。
OCIのテナントを取得した直後の状態からアプリケーションが完成するまでの作業を、全部で9本の記事で紹介しています。
- APIユーザーの作成では、 準備としてコンパートメント、グループ、ポリシー、ユーザー、それにユーザーにAPIキーを作成しています。
- バケットの作成では、OCIオブジェクト・ストレージにバケットを作成し、ファイルをひとつアップロードしています。
- ADBの作成からAPEXアプリの準備まででは、Always FreeのAutonomous Databaseをひとつ作成し、Oracle APEXのワークスペースを新規に作成した後、空のアプリケーションを作成しています。
- Web資格証明の作成では、APEXにOCIのオブジェクト・ストレージにアクセスするときに使用するWeb資格証明を登録しています。
- Web資格証明の作成では、アプリケーションにOCIのオブジェクト・ストレージを操作するために使用するWebソース・モジュールを作成しています。
- オブジェクトの一覧表示では、APEXのアプリケーションにOCIオブジェクト・ストレージのバケットを選んで、含まれるオブジェクトの一覧を表示する機能を実装しています。
- ファイルのアップロードでは、オブジェクト・ストレージにファイルをアップロードする機能を実装しています。この実装はダイアログ・ページのページの送信(HTTPのPOSTによる呼び出し)時に実行されるプロセスとして機能を実装するという、Oracle APEXで最も一般的な機能の実装手法を使っています。
- ファイルのダウンロードでは、オブジェクト・ストレージからオブジェクトをダウンロードする機能を実装しています。この実装は別ページへのリダイレクト(HTTPのGETによる呼び出し)時に処理を行う実装になっています。
- ファイルの削除では、オブジェクト・ストレージ内のオブジェクトの削除機能を実装しています。これはリンクに動的アクションを定義して、それからAjaxによってプロセスの呼び出しを行う実装になっています。
続く