Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • GlitchTip Backend GlitchTip Backend
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 20
    • Issues 20
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GlitchTip
  • GlitchTip BackendGlitchTip Backend
  • Issues
  • #135
Closed
Open
Created Apr 04, 2022 by Christian Breidler@webgyver.atContributor

Google Cloud Storage Support as File storage

Following the Installation Guide I added the DEFAULT_FILE_STORAGE and GS_BUCKET_NAME environment variable, which I could found for django-storages.

I was not able to build the image as you did it, so I added a merge request (!136 (merged)), which has already been merged (thank you for that).

I tried it today and get the following: ModuleNotFoundError: No module named 'google.cloud.storage'.

full message
Internal Server Error: /api/0/projects/test-org/test-proj/releases/test-v1/files/
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 657, in get_or_create
    return self.get(**kwargs), False
  File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 496, in get
    raise self.model.DoesNotExist(
files.models.FileBlob.DoesNotExist: FileBlob matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/storages/backends/gcloud.py", line 20, in <module>
    from google.cloud.storage import Blob, Client
ModuleNotFoundError: No module named 'google.cloud.storage'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/rest_framework/viewsets.py", line 125, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/rest_framework/mixins.py", line 19, in create
    self.perform_create(serializer)
  File "/code/releases/views.py", line 116, in perform_create
    serializer.save(release=release)
  File "/usr/local/lib/python3.10/site-packages/rest_framework/serializers.py", line 212, in save
    self.instance = self.create(validated_data)
  File "/code/releases/serializers.py", line 69, in create
    file.putfile(fileobj)
  File "/code/files/models.py", line 101, in putfile
    file_blob, _ = FileBlob.objects.get_or_create(
  File "/usr/local/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 664, in get_or_create
    return self.create(**params), True
  File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 514, in create
    obj.save(force_insert=True, using=self.db)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 806, in save
    self.save_base(
  File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 857, in save_base
    updated = self._save_table(
  File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 1000, in _save_table
    results = self._do_insert(
  File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 1041, in _do_insert
    return manager._insert(
  File "/usr/local/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 1434, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1620, in execute_sql
    for sql, params in self.as_sql():
  File "/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1547, in as_sql
    value_rows = [
  File "/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1548, in <listcomp>
    [
  File "/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1549, in <listcomp>
    self.prepare_value(field, self.pre_save_val(field, obj))
  File "/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1497, in pre_save_val
    return field.pre_save(obj, add=True)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/fields/files.py", line 316, in pre_save
    file.save(file.name, file.file, save=False)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/fields/files.py", line 91, in save
    name = self.field.generate_filename(self.instance, name)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/fields/files.py", line 336, in generate_filename
    return self.storage.generate_filename(filename)
  File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 258, in inner
    self._setup()
  File "/usr/local/lib/python3.10/site-packages/django/core/files/storage.py", line 413, in _setup
    self._wrapped = get_storage_class()()
  File "/usr/local/lib/python3.10/site-packages/django/core/files/storage.py", line 408, in get_storage_class
    return import_string(import_path or settings.DEFAULT_FILE_STORAGE)
  File "/usr/local/lib/python3.10/site-packages/django/utils/module_loading.py", line 30, in import_string
    return cached_import(module_path, class_name)
  File "/usr/local/lib/python3.10/site-packages/django/utils/module_loading.py", line 15, in cached_import
    import_module(module_path)
  File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/local/lib/python3.10/site-packages/storages/backends/gcloud.py", line 23, in <module>
    raise ImproperlyConfigured("Could not load Google Cloud Storage bindings.\n"
django.core.exceptions.ImproperlyConfigured: Could not load Google Cloud Storage bindings.
See https://github.com/GoogleCloudPlatform/gcloud-python

Unfortunately I have no knowledge about django and can't do anything with the information.

Assignee
Assign to
Time tracking