Django + Google Storage (GCP) с несколькими ведрами

На данный момент я использую django 1.11 и использую облачную платформу google (google storage) для хранения pdf.

мой bucket не открыт для публики и все было хорошо, но теперь мне нужно хранить публичный файл (люди со ссылкой могут получить доступ к загруженному pdf файлу)

Я подумал, возможно ли, чтобы у меня были опции (выбор цели ведра) при загрузке в google storage?

Может быть, что-то вроде этих кодов

from django.db import models
from storages.backends.s3boto import S3BotoStorage

class MyModel(models.Model):
    file_1 = models.FileField() # Uses default storage
    file_2 = models.FileField(storage=S3BotoStorage(bucket='other-bucket'))

Я хочу сделать то же самое, что и здесь, но используя GCP вместо AWS django-storages с несколькими S3 Buckets

Прошу прощения, если вопрос слишком простой, но до сих пор я так и не нашел ответа

Спасибо за внимание, и надеюсь, что вы сможете помочь мне и другим людям, которые столкнулись с такой же проблемой.

Не проверено, но логически вы можете сделать это :

from django.db import models
from storages.backends.gcloud import GoogleCloudStorage

class MyModel(models.Model):
    file_1 = models.FileField() # Uses default storage
    file_2 = models.FileField(storage= GoogleCloudStorage(bucket='other-bucket'))

Вы можете посмотреть, как работает бэкэнд здесь : https://github.com/jschneier/django-storages/blob/master/storages/backends/gcloud.py

Небольшое изменение - он должен использовать bucket_name вместо bucket.

Больше информации здесь https://github.com/jschneier/django-storages/issues/744#issuecomment-526243643

Вернуться на верх