Google Cloud Storage requires several steps to configure.

You will start at the API credentials manager:\\
[https://console.developers.google.com/projectselector/apis/credentials]\\
\\
You need to enable the GoogleStorage API for your account if its not already.\\
[https://console.developers.google.com/apis/library/storage-component.googleapis.com/]\\
[attachments|clopud_storage_api_enable.png]\\
\\
Create a new project.  My example calls this "CrushFTP-Test".\\
[attachments|gDriveSetup/create_project.png]\\
\\
!1. Web Application type\\
\\
Next, click on the "Create Credentials" button, and choose the Web Application type.\\
[attachments|gDriveSetup/create_credentials.png]\\
\\
It will warn you if you don't have an "OAuth Consent" screen configured, so go there and configure that screen too.\\
[attachments|gDriveSetup/oauth_consent.png]\\
\\
When configuring the credential, you have to tell Google the domain you will be originating from when creating the auth token, so this is the URL you use for server administration.  Just the protocol://dns_or_ip:port   Don't have a trailing slash or it will complain.\\
Configure the redirect URL of where Google will send you back after approval.  This needs to follow the syntax in the example.  Specifically, your domain needs to end with:\\
{{{
?command=register_gdrive_api
}}}
[attachments|gDriveSetup/credential_config.png]\\
\\
And one last important step, you need to enable the GoogleDrive API for your account if its not already.\\
[https://console.developers.google.com/apis/library/storage-component.googleapis.com/]\\
[attachments|clopud_storage_api_enable.png]\\
\\
Now that the API is enabled, your credentials are setup, and your redirect domains are configured, you can use the credentials in CrushFTP to get your Google auth token and get access.\\
In the User Manager, add a new remote VFS item type and set the protocol to be "GStorage".\\
Click "Get Refresh Token" to finish the config. Provide the client id and secret.\\
\\
[attachments|oauth_form.png]\\
\\
If your domain is not verified you will get a warning message, click on Advanced and proceed further:\\ 
\\
[attachments|not_verified_domain.png]\\
\\
Click on allow:\\
\\
[attachments|allow_form.png]\\
\\
The refresh token will be saved as password.\\
Provide the bucket and the path.\\
It is done! Test the connection and save it!\\
[attachments|bucket_and_test.png]\\
\\
!2. Service Account type\\
\\
Create Credentials -> Service Account.\\
[attachments|service_account.png]\\
\\
Provide a name and continue.\\
[attachments|service_account_details.png]\\
\\
Configure the service account access.\\
[attachments|storage_account_access.png]\\
\\
Click on the "Done" button.\\
\\
Navigate to the newly created Service Account. Go to the KEYS tab. Click on the "Add KEY" button, and then select "Create new key".\\
[attachments|service_account_new_key.png]\\
\\
Download the JSON file.\\
[attachments|service_account_private_key.png]\\
\\
!!VFS configuration\\
\\
Username:__google_jwt__\\
Special username for Service Account Access.\\
Password:__<<the JSON file content>>__\\
It authenticates based on the provided JSON file.\\
Provide the __bucket__ and the path.\\
It is done! Test the connection and save it!\\
[attachments|service_acount_vfs_test.png]\\
\\
!3.Access through S3 API\\
\\
Generate __Access key__ and __Secret__. Got to [https://console.cloud.google.com/] In the left sidebar of the dashboard, click Google Cloud Storage and then Settings.\\
[attachments|cloud_storage_sttings.png]\\
Select the Interoperability tab. If you haven't enabled it already, click on __Interoperable Access__.\\