最近のアクセス:
Configuration.ExternalStorage 外部オブジェクト

この機能を使用して、実行時に、[ Storage Provider ] プロパティで設定されたストレージプロバイダーを変更したり、その設定を変更したりできます。また、cloudservices.config で設定されている、ほかのストレージプロバイダーに接続することもできます。
GeneXus コアモジュールの一部である GeneXus.Common.Configuration.ExternalStorage という名前の外部オブジェクトは、この機能に必要なすべてのメソッドを公開します。
イメージ:45929.png イメージ:45916.png

メソッド

Create メソッド

環境内で設定されている [ Storage Provider ] プロパティの設定に従って、プログラムで使用中のストレージプロバイダーのインスタンスを返します。
戻り値 Boolean
パラメーター ProviderType:StorageProviderType,
Properties:Properties データタイプ
OutStorageProvider:StorageProvider,
OutMessages:Messages
警告: 一時的な制限: &Properties の入力には、プロバイダーの認証の資格情報を含める必要があります。


Connect メソッド

ProfileName が cloudservices.config で定義されている場合、対応するストレージプロバイダーのインスタンスを返します。
戻り値 Boolean
パラメーター ProfileName:Character,
Properties:Properties データタイプ
OutStorageProvider:StorageProvider,
OutMessages:Messages
: 一時的な制限: ProfileName でサポートされる値は「Default」のみです。

ドメイン

StorageProvider ドメイン

[ Storage Provider ] プロパティで使用可能なストレージ プロバイダー タイプで列挙されるドメインです。
Amazon_S3  
Box サポートされていません。
Google_CloudStorage   
IBM_Bluemix サポートされていません。
IBM_ObjectStorage  
Microsoft_Azure  
OpenStack サポートされていません。
: 使用されているジェネレーターまたはインストールの [ Storage Provider ] プロパティの対応する実装が存在するかどうかで、サポートされる値が異なります。

例の説明:
  • &Properties は Properties データタイプ
  • &StorageProvider、&fromStorageProvider、&toStorageProvider は Storage Provider API データタイプ
  • &ExternalStorage、&fromExternalStorage、&toExternalStorage は GeneXus.Common.Configuration.ExternalStorage データタイプ
  • &Messages は GeneXus.Common.Messages データタイプ
ユースケース 1: プロパティ (Bucket 名) を変更します。
&Properties = new()
&Properties.set(!"BUCKET_NAME", !"my-bucket")
if &ExternalStorage.Connect(!"Default", &Properties, &StorageProvider, &Messages)
     //{{ &StorageProvider を使用}}
endIf
: 「Default」は、設計時に [ Storage Provider ] プロパティで定義された値を参照します。

ユースケース 2: 実行時にプロバイダーを設定します。
&Properties = new()
&Properties.set(!"STORAGE_PROVIDER_ACCESSKEYID", !"{access-key-id_by-S3}")
&Properties.set(!"STORAGE_PROVIDER_SECRETACCESSKEY", !"{secret-access-key_by-S3}")
&Properties.set(!"STORAGE_PROVIDER_REGION", !"{region}")
&Properties.set(!"STORAGE_ENDPOINT", !"{endpoint_by-S3}")
if &ExternalStorage.Create(StorageProviderType.Amazon_S3, &Properties, &StorageProvider, &Messages)
     //{{ &StorageProvider を使用}}
endIf
: このケースは、マルチテナントシナリオで、各テナントに別のストレージ環境を使用する必要がある場合に便利です。

ユースケース 3: オブジェクト (ファイル) を Bucket 間またはストレージ環境間でコピーします。
&AWSProperties.clear()
&AzureProperties.clear()
if &ExternalStorage.Create(StorageProviderType.Amazon_S3, &AWSProperties, &OutStorageProvider, &OutMessages)
    //{{ &OutStorageProvider は Amazon を指定、そこからファイルをダウンロードすることが可能 }}
    if &ExternalStorage.Create(StorageProviderType.Microsoft_Azure, &AzureProperties, &OutStorageProvider, &OutMessages)    
        //{{ &OutStorageProvider は Azure を指定、前にダウンロードしたファイルを Azure にアップロード可能 }}
    endIf 
endIf
警告: プログラムでは StorageProvider データタイプの 1 つのインスタンスのみ使用できます。そのため、ケース 3 では同じ変数 &OutStorageProvider が使用されています。

ユースケース 4: プロパティの名前を取得します。 
cloudservices.config ファイルの Storage セクションで、ストレージプロバイダーに設定可能なプロパティの名前を取得する方法を以下に示します。
  1. GeneXus IDE では、プロパティに値を割り当てる必要があります (たとえば、Google Cloud Storage への接続を設定するために使用するプロパティなど): [ Service Account Key ] 、 [ Project ID ] 、 [ Application Name ] 。
  2. これらのプロパティの名前を取得するには、以下の手順を実行します:
    • GeneXus が設定ファイルを生成するように、ナレッジベースビルドを実行します。
    • モデルの cloudservices.config ファイルを探します。このファイルはビルド中に生成され、クラウドサービスの設定を含んでいます。
    • cloudservices.config ファイルをテキストエディターで開きます。
    • ファイル中の Storage セクションを探します。
    • Storage セクションの中に、それぞれの名前と値を含むプロパティが見つかります。設定したプロパティに対応するプロパティの名前をコピーします。

使用するプロバイダーの dll/jar は、手動で Web アプリケーションにコピーする必要があります。たとえば、Java と Amazon S3 の場合、"GXInstallationFolder\Services\Storage\AmazonS3\services" フォルダの jar を、Web アプリケーション内のアプリケーションの lib フォルダ "Tomcat\webapps\KBNameJavaEnvironment\WEB-INF\lib" に手動でコピーする必要があります。

適用範囲

ケース 1 とケース 2 は、.NET、.NET Core、および Java ジェネレーターでサポートされます。
ケース 3 は、GeneXus 16 Upgrade 10 以降、.NET および .NET Core ジェネレーターでのみサポートされます。

使用可能バージョン

この機能は GeneXus 16 Upgrade 10 以降で利用できます。


参考情報

Storage Provider API


サブページ
Created: 20/12/14 21:42 by Admin Last update: 24/12/18 03:04 by Admin
カテゴリ
Powered by GXwiki 3.0