Storage Provider property

Official Content
This documentation is valid for:
Determines the storage provider for Multimedia files used in the Knowledge Base. It allows selecting among different external storage providers.

Values

Amazon S3 Amazon Simple Storage Service
Microsoft Azure Microsoft Azure Storage Service
Google Cloud Storage Google Cloud Platform Storage Service
IBM Cloud Object Storage IBM Cloud Storage Service
Local This is the default value. Multimedia files (audios, videos, and images) are stored locally as usual.

Scope

Generators: Java, .NET, .NET Core
Level: Generator

Description

Depending on the Storage Provider used, different additional properties are available to configure the storage location. These properties are grouped under the Services section.

It's a generator and object property.

enlightened At the object level, you can configure Use External Storage Provider Property = {True, False} for each multimedia attribute. Its main purpose is to determine if one multimedia field will use the same Storage Provider Property settings as configured at the generator level. If False is selected, the Local value is assumed.
It cannot be configured for multimedia variables; in this case, the generator's property value will be used.

Below are the cases for each of the storage providers supported.


Amazon S3

Bucket name To upload your (multimedia) data, first create a bucket in one of the AWS regions. It's a repository where you can store data grouped by folders. You can then upload any number of objects to the bucket. Click here for more information. If the bucket doesn't exist, the application creates it, unless the user has no privileges to do so.
Consideration: The Bucket name must have "Public Access." This means that to access the file no authentication is performed, and anyone with the URL can access it. If this solution is not suitable for you, we recommend using the Storage Provider API.
Folder Name A folder inside the Bucket structure. If it doesn't exist, it is created by the application. A folder with the same name as that of the table is created under the Folder specified in this property, along with another folder that has the same name as the multimedia attribute. The multimedia file is stored under the latter folder.
Storage Access Key ID S3 Access Key ID.(*)
Storage Secret Access KEY S3 Secret Access Key. (*)
Storage Region To reduce data latency in your applications, most Amazon Web Services offer a regional endpoint to make your requests. Click here for more information.
Storage Endpoint To enable fast transfers of files over long distances between your client and an S3 bucket. The possible values are Standard, Accelerated, Dual-Stack Accelerated, Custom Endpoint. For more information, click here.
Prerequisites: Transfer Acceleration must be enabled on the bucket.
Available since GeneXus 15 upgrade 2.
Storage Custom Endpoint  

(*) If these properties are left empty, they will be instantiated at runtime from environment settings in the Amazon EC2 instance. The option to leave them empty is available since GeneXus 16 upgrade 3.

i2016_05_24_17_47_261_png

IBM Cloud Storage

Bucket Name A repository where you can store data grouped by folders.
Folder Name A folder inside the Bucket structure. If it doesn't exist, it is created by the application.
Project Id Also known as tenant name, it is used to group users.
Storage User Id Open Stack user.
Storage Password Open Stack user's password.
Bluemix Service URL URL to access the server.
Bluemix Region Region of the server.

i2016_05_24_18_14_382_png

It works for any Open Stack instance that uses Identity API v3.0.

Microsoft Azure

Public Container Name A repository where you can store data.
Private Container Name A repository where you can store data. Used for storing Excel files and handling private files. See Storage Provider API.
Account Name An Azure storage account provides a unique namespace to store and access your Azure Storage data.
Access Key Access Key for the account.

Click here for more information about Azure Storage.

Google Cloud Storage

Bucket Name A repository where you can store data grouped by folders.
Folder Name A folder inside the Bucket structure. If it doesn't exist, it is created by the application.
Service Account Key The entire contents of the .json file generated as service account key.

To get the service account key, open the Google console, go through API Manager/Credentials, and then Create Credentials/Service account key. The service account key should belong to the Storage Admin role:

create google service account key2

create google service account key

Project Id ID of the project.
Application Name Name of the application sent in every request's headers.

 

Note: In addition to this property, since GeneXus 17 upgrade 5 the Privacy property is available to set the privacy level.

How to apply changes

To apply the corresponding changes when the property value is configured, execute a Build with this Only of the object.

Configuration file

The CloudServices.config file is updated as any property changes. Unless you change the Storage Provider, there's no need to do any build. Implementation Details: When the CloudServices.config file is found in the web application, multimedia files are stored using the settings declared in that file. On the other hand, if the file isn't found, multimedia files are stored in the database. The file is read-only once when the application starts, so if you change the file settings you need to restart the web application.

See Also

External Storage for Multimedia for more detailed information.
Privacy property (Storage Provider)
URL Expiration property (Storage Provider)
Storage Custom Endpoint property (Storage Provider)