画像のアップロードができないと嘆いていたのですが、ただ単に「keyの置き場所の指定が間違っていた」だけだったので、手順を記述しておきます。
Google App Engine + Google Storage の方法は皆さんCloud Runに移行しているからか、記事が古いケースが多いので、これが現時点の最新版だと思います。
1.django-storageをインストール
ローカルにもpipするのを忘れないようにしてください。(私、思い切り忘れて、collectstaticできないとわめいていました)
pip django-storage[google]
requirements.txtdjango-storage[google]=1.12.3を追加。
2.myproject下のsetting.pyを編集
INSTALLED_APPSは変更なしです。(storagesを加えるという記事も多いですが、必要ありません)
google cloud consoleで、IAMと管理にアクセスし、app engineのサービスアカウントを選択。キーからkeyをダウンロードします(.jsonファイルです)。そのjsonファイルをmyprojectの下、適当な場所に保存してください(今回は、secret/a.jsonに保存したとします)setting.pyに
# Storage
STORAGES = {default : {BACKEND: storages.backends.gcloud.GoogleCloudStorage},
staticfiles: {BACKEND: storages.backends.gcloud.GoogleCloudStorage}}
GS_BUCKET_NAME = {プロジェクト名}.appspot.com
GS_CREDENTIALS = service_account.Credentials.from_service_account_file( os.path.join(BASE_DIR,secret/a.json))
を追記。(私、secret/a.json を/secret/a.jsonと絶対パスにしており、気づくのに3日かかりました。。。)
3.collectstatic を実行して、static下のファイルをgoogle storageに移行。
なぜか私は一部ファイルが移行されなかったので、手動でそれらは移行しました。
これでgoogle storageがdefaultのストレージになりました。あとは好みの方法で画像や動画をアップロードしてください。私はckeditorを使っています。