最近のアクセス:
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_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 が使用されています。

適用範囲

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

使用可能バージョン

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


参考情報




サブページ
Created: 20/12/14 21:42 by Admin Last update: 21/10/28 23:31 by Admin
カテゴリ
Powered by GXwiki 3.0