弊社でも時代の流れに乗り、オンプレミス環境ではなくクラウドを活用したシステム構築案件が増えてきました。
GeneXus 15の新機能として、クラウドストレージサービスを利用したファイル管理ができるようになりました。
利用できるクラウドストレージ
- Amazon S3
- Microsoft Azure
- IBM Bluemix(現 IBM Cloud)
- Google Cloud Storage
メジャーなクラウドベンダーに対応しています。
制限事項
どのクラウドストレージを利用するかは、ジェネレータの Storage Provider プロパティで設定します。
このプロパティは1つしか設定できないため、複数のクラウドストレージを扱うことはできません。
また、各クラウドベンダーで名称が異なりますが、「バケット名」と呼ばれるファイルの取得/送信先の最上位のディレクトリも、1つしか設定できません。
そのため、同一アプリケーション内で複数のバケットを使い分けることはできません。
実装の特殊性
Storage Provider API(データタイプ)を使用して実装しますが、利用できるメソッドは2018年10月現在、以下の6つのみです。
- Upload
- UploadPrivate
- Get
- GetPrivate
- Download
- GetDirectory
ファイルの新規登録や更新ができるUpload/UploadPrivateメソッドがあるのに対し、Deleteメソッドがありません。
ファイルを削除する場合には、次のように一旦Fileデータタイプに格納し、それを削除するというコードを記述します。
1 2 |
&StorageProvider.Get(&FilePath, &File, &Messages) &File.Delete() |
削除は今までと同じ記述方法なので、開発途中でクラウドストレージを利用するという方針に変わったとしても、影響が少ないですね。