Recently we moved from an Hugo based page to an page based on ghost. Our page runs on the GAE (Google App Engine). After migrating the page to the latest ghost version the result was an problem with the Ghost Google Cloud Storage Plugin created by thombuchi. Because it wont work with the latest version of Ghost.

For that problem i created a fork and upgraded the adapter to the latest version of ghost, the base project isnt maintained actually so i uploaded my fork with the patch for the latest ghost version to the npm by myself.

The storage adapter for Google Cloud is tested with Ghost Version 2.x

Installation

npm i ghost-google-cloud-storage-new --save

Add the config to your config.development.json and config.production.json or only in one of them, as hint, dont add an slash at the end of your contentPath

 "paths": {
    "contentPath": "/app/content"
  },
  "storage": {
    "active": "gcloud",
    "gcloud": {
      "projectId": "[YOUR_PROJECT_ID]",
      "key": "[PATH_TO_YOUR_KEY_FILE]",
      "bucket": "[NAME_OF_BUCKET]",
      "insecure": false,
      "maxAge": "2678400"
    }
  },

To activate the storage module you need to create an storage adapter inside your content path. This is simply an file which requires the storage module. When your contentPath in your json file looks like this "/app/content" then go to the directory  "/app/content" and create an folder

on linux in terminal with:

cd your/content/path/
mkdir -p adapters/storage/gcloud
touch index.js

The file index.js should contain only these two lines:

'use strict';
module.exports = require('ghost-google-cloud-storage-new');

You can find the source of the adapter on github or use the npm package: