How to Integrate FileCloud with Google Cloud Object Based Storage


FileCloud officially supports only Amazon S3 storage.

  • Other Amazon S3 compatible storage systems are supported through our Amazon S3 drivers, including:
    • Digital Ocean S3 object storage
    • Scality
    • Wasabi
    • Google Cloud object storage
    • Backblaze B2
    • Cloudian S3-Compatible Object Storage
  • The robustness of these S3 compatible storage systems depends on their compatibility with Amazon S3 API.

Administrators can change the FileCloud storage type after FileCloud has been installed but before any data has been stored. 

  • When changing the storage type from local to GCP object storage, the files and folders that have been already stored in local storage will not be automatically moved to S3 storage.
  • In this case, the administrator must manually export files and folders from local storage before changing the storage type, and then manually import them after changing the storage type.


  • Only change the FileCloud storage type for new installations.
  • Do not change the FileCloud storage type if FileCloud has been in use and data is already stored.
  • Be careful when changing the storage path; If done improperly it could lead to data loss. 
  • The GCP Bucket should NEVER be modified outside of the FileCloud subsystem.
  • Do not add, edit, or modify files directly using GCP tools. Doing so will destabilize your FileCloud installation.

To change the FileCloud storage path from LOCAL to GCP object storage:

NOTES:

Although FileCloud does not have an explicit connector for GCP object-based storage, the Amazon S3 connector can be used.

In this step you will need to access WWWROOT. It is typically located at: 

Windows

Linux

(later than Ubuntu 14.04)

Linux

(earlier than Ubuntu 14.04)

c:\xampp\htdocs/var/www/html/var/www

To enable GCP object storage as the backend:

  1.  To make sure that your server does not have any time variations, set up the time on your server to be synchronized.
    1. Configure an authoritative time server in Windows Server
    2. Synchronize Time with NTP in Linux
  2. Open the following file for editing:

    WWWROOT/config/cloudconfig.php
  3. Find the following line:

    define("TONIDOCLOUD_STORAGE_IMPLEMENTATION", "local");
  4. Change it to:

    define("TONIDOCLOUD_STORAGE_IMPLEMENTATION", "amazons3");
  5. Save and close the file.
  6. Find the following file:

    WWWROOT/config/amazons3storageconfig-sample.php
  7. Rename it to:
    WWWROOT/config/amazons3storageconfig.php

(lightbulb) Nothing needs to be added or edited in amazons3storageconfig.php



After you have set up the storage implementation key in step 1, you can configure the following credentials:

FieldDescription
S3 KeyYour GCP HMAC authentication key.
S3 SecretYour GCP HMAC authentication secret.
S3 Bucket Name

Provide a bucket name. The bucket should be new (in some circumstances, a previously used bucket in FileCloud can be used).

It is important that the S3 bucket is never modified outside of the FileCloud subsystem,

The bucket name is case sensitive; make sure you are using the exact name of the bucket.

Optional: All files are stored inside this root storage folder (it is created automatically).
S3 Region

Optional: Provide the region string.

Generally use: auto

S3 End Point URL

This is the S3 endpoint. note that for each region there is a specific endpoint URL.

Generally, it is: 

https://storage.googleapis.com

Encryption

By default  encryption type is: Google-managed keys

NB: For this integration, only Google-manages keys encryption is supported, from the Filecloud level no additional actions are needed.

To enable HMAC access key for a bucket, go to Google cloud storage > Settings, and select the Interoperability tab. You should see an empty list and a CREATE A KEY button.

To configure Digital Ocean S3 Credentials

  1. Open a browser and log into the Admin Portal.
  2. Go to Settings > Storage
  3. Enter the settings for your environment.
  4. Click Save.


Troubleshooting:


If you are having problems previewing images, add a line to the .htaccess file.

To add a line to the .htaccess file:

  1. Open the following file:
    1. Windows:  C:\xampp\htdocs\.htaccess
    2. Linux: /var/www/html/.htaccess
  2. Add the following line:

    Header set Content-Security-Policy: "default-src 'self' *.live.com; style-src 'unsafe-inline' 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self';font-src 'self' data:;img-src 'self' *.live.com  data: *.duosecurity.com *.wasabisys.com *.googleapis.com"

If you are having problems playing mp4 videos, add a line to the .htaccess file.

To add a line to the .htaccess file:

  1. Open the following file:
    1. Windows:  C:\xampp\htdocs\.htaccess
    2. Linux: /var/www/html/.htaccess
  2. Add the following line:

    Header set Content-Security-Policy: "default-src 'self' *.live.com *.wasabisys.com *.googleapis.com; style-src 'unsafe-inline' 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self';font-src 'self' data:;img-src 'self' *.live.com  data: *.duosecurity.com *.wasabisys.com *.googleapis.com"