最近のアクセス:
Storage Provider API

[ KB エクスプローラー ] で、 [ GeneXus ] > [ Common ] > [ Configuration モジュール ] を選択し、StorageProviderType という名前のドメインを探します。
このドメインに基づいて変数を定義することで、メソッドを使用してアプリケーションのグローバルデータ (あらゆるタイプのファイル) を外部ストレージで管理できるようになります。外部ストレージは、Amazon、Azure、Google、IBM Cloud のいずれかになります (使用可能な外部ストレージは、[ Storage Provider ] プロパティの値と同じです)。

メソッド

Upload

ファイルを外部ストレージに保存し、操作が成功した場合に True を返します。
戻り値     Boolean
パラメーター             FileFullPath:Character, [ StorageObjectFullName:Character ] , [ OutUploadedFile:File ] , [ OutMessages:Messages ]

外部ストレージ内のファイルの参照 (File データタイプ) を取得する場合は、OutUploadedFile パラメーターを使用できます。ストレージ内のファイルの URI を取得するために GetURI() を使用します。

UploadPrivate

ファイルを外部ストレージにプライベートとして保存し、操作が成功した場合に True を返します。
ファイルは署名され、バケットにアップロードされます。ファイルに署名をするために使用される証明書は、プロバイダーによって生成されます。
戻り値 Boolean
パラメーター             FileFullPath:Character, [ StorageObjectFullName:Character ] , [ OutUploadedFile:File ] , [ OutMessages:Messages ]

外部ストレージ内のファイルの参照 (File データタイプ) を取得するには、OutUploadedFile パラメーターを使用できます。ストレージ内のファイルの URI を取得するために GetURI() を使用します。

Get

外部ストレージにあるファイルの参照 (File データタイプ) を取得します。操作に成功した場合に True が返されます。
戻り値 Boolean
パラメーター StorageObjectFullName:Character, OutExternalFile:File, [ OutMessages:Messages ]


GetPrivate

外部ストレージにあるファイルの参照 (File データタイプ) を取得します。操作に成功した場合に True が返されます。
戻り値 Boolean
パラメーター StorageObjectFullName:Character, OutExternalFile:File, ExpirationMinutes:Numeric, [ OutMessages:Messages ]

OutExternalFile はバケットから取得したファイルであり、URL が格納されます。
取得された URL は、ExpirationMinutes パラメーターで指定した期間内だけ有効になります。

Download

外部ファイルをアプリケーションサーバーにダウンロードし、ローカルに保存します。操作に成功した場合に True が返されます。
戻り値 Boolean
パラメーター StorageObjectFullName:Character, OutLocalFile:File, [ OutMessages:Messages ]

OutLocalFile を使用すると、外部ファイルをダウンロードした後の保存先を定義できます。

DownloadPrivate

(Azure Storage Provider にのみ適用)
プライベートの外部ファイルをアプリケーションサーバーにダウンロードし、ローカルに保存します。操作に成功した場合に True が返されます。
戻り値 Boolean
パラメーター StorageObjectFullName:Character, OutLocalFile:File, [ OutMessages:Messages ]

OutLocalFile を使用すると、外部ファイルをダウンロードした後の保存先を定義できます。

GetDirectory

外部ストレージ (クラウド) 内のディレクトリー (Directory データタイプ) を取得します。
戻り値 Boolean
パラメーター StorageDirectoryFullName:Character, OutExteralDirectory:Directory, [ OutMessages:Messages ]

Amazon では次の形式になります: <bucketname>: Directory
例: genexuss3test:\petsFolder\

注:

  • StorageObjectFullName は、バケット内にあるファイルのフルネームです (フォルダと拡張子が含まれます)。
  • Messages オブジェクトは、次のフォーマットを持つ Messages.Message のコレクションです:
    • Id: エラーコードは、the Storage Provider (Amazon S3, Google など) によって返されます。
    • Type: (0 = 警告、1 = エラー) 
    • Description: エラーデスクリプションは、Storage Provider によって返されます。
    エラーがない場合には、&Messages コレクションは空です。

画像をアップロードする

外部ストレージに手動でファイルをアップロードする必要があるとします。外部ストレージにアップロードするファイルは、事前にアプリケーションサーバーにアップロードされているものとします。
まず、StorageProvider データタイプの &Storage 変数を定義します。
外部ストレージに保存するファイルは、元はサーバーのファイルシステムに配置されているため、File データタイプを使用して絶対パスを取得します。
Storage Provider API の Upload メソッドを使用することで、アップロードするファイルのフルネーム (フォルダと拡張子を含む) を取得できます。
&Storage = new() //コードのこの行は、ナレッジベースで設定されている外部ストレージの新しいインスタンスを作成
&File.Source ="catToUpload.jpg" //&File は File データタイプ
&FileFullPath = &File.GetAbsoluteName()
&StorageObjectFullName = "petsFolder/cat.jpg"
if ( &Storage.Upload(&FileFullPath, &StorageObjectFullName, &UploadedFile, &Messages) )
    &URL = &UploadedFile.GetURI() //アップロードされたファイルの &URL
else
     for &Message in &Messages
        msg(&Message.Description, status)
    endfor
endif
この例では、バケット名は「genexuss3test」で、「petsFolder」というフォルダがバケット内に作成され、アップロードしたファイルがそこに保存されます。
イメージ:32498.png

外部ストレージにあるファイルの参照を取得する

ここでは、外部ストレージに配置されているファイルの URI を取得します。&ExternalFile は File データタイプです。
&StorageObjectFullName = "petsFolder/cat.jpg"
if ( &Storage.Get(&StorageObjectFullName, &ExternalFile, &Messages) )
    msg(format("The external URI of the image is : %1", &ExternalFile.GetURI()), status)
else
    for &Message in &Messages 
      msg(&Message.Description, status) 
    endfor
endif
次の値が返されます: https://genexuss3test.s3.amazonaws.com/petsFolder/cat.jpg

アプリケーションサーバーのファイルシステムにファイルをダウンロードする

この例は、外部ファイルをサーバーのファイルシステムにダウンロードするコードを示しています。&LocalFile は File データタイプです。
&StorageObjectFullName = "petsFolder/cat.jpg"
&LocalFile.Source = "catDownloadFromStorage.jpg"
if ( &Storage.Download(&StorageObjectFullName, &LocalFile, &Messages) )
    msg(format("Image downloaded to : %1", &LocalFile.GetAbsoluteName()), status)
else
   for &Message in &Messages 
      msg(&Message.Description, status) 
   endfor
endif

外部ストレージフォルダにあるファイルを削除する

ここでは、外部ストレージフォルダからすべてのファイルを削除します。&ExternalDirectoryDirectory データタイプです。
ここでは、ファイルは外部ファイルとして扱われます。
&DirectoryFullName = "petsFolder"
if ( &Storage.GetDirectory(&DirectoryFullName, &ExternalDirectory, &Messages) )
    for &ExternalFile in &ExternalDirectory.GetFiles()
        &ExternalFile.Delete()
    endfor
else
    msg(format("The directory %1 couldn't be obtained", &DirectoryFullName))
    for &Message in &Messages   
        msg(&Message.Description, status)   
    endfor
endif

外部ストレージフォルダにある 1 つのファイルを削除する

&StorageObjectFullName = "folder/catToUpload.jpg" 
&found = &StorageProvider.Get(&StorageObjectFullName, &File, &outMessages)
If &found
    &File.Delete()
Else
    Log.Error(!"File not Found")
EndIf

Private ファイルを使用した例

&Storage = new() 
&File.Source = "catToUpload.jpg" 
&FileFullPath = &File.GetAbsoluteName()
&StorageObjectFullName = "Private/cat1.jpg"

if (&Storage.UploadPrivate(&FileFullPath, &StorageObjectFullName) )
    msg("File has been successfuly uploaded", status)
else
     for &Message in &Messages
        msg(&Message.Description, status)
    endfor
endif

&Storage.GetPrivate(&StorageObjectFullName,&UploadedFile,11)  

msg(&UploadedFile.GetURI(), status) //URL は、11 分間有効

サンプルのダウンロード

Storage Provider API サンプルから、すべてのサンプルをダウンロードできます。

実行時のストレージプロバイダーの変更

Configuration.ExternalStorage 外部オブジェクト」を参照してください。

使用可能バージョン

Storage Provider API は、Java.NET ジェネレーターおよび [ Storage Provider ] プロパティでサポートされているすべてのストレージプロバイダーで使用できます。
例外: UploadPrivate と GetPrivate は、GeneXus 15 Upgrade 3 以降、.NET ジェネレーターと Amazon S3 でのみで使用できます。それらは、GeneXus 15 Upgrade 7 以降、.NET ジェネレーター、Amazon S3 および Microsoft Azure 用の Java ジェネレーターで使用できます。これらのメソッドは、今後のアップグレードでその他のプラットフォームで使用可能になります。



サブページ
Created: 17/05/30 19:02 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0