Как я могу загружать данные в разные ведра в Django и Google Storage?

Я могу загрузить файл в Google Storage, но проблема в том, что он попадает в ведро по умолчанию, где находятся мои статические файлы: GS_BUCKET_NAME='static-files'

Я бы хотел продолжать загружать статические файлы в ведро 'static-files', но я бы хотел также загружать пользовательские файлы в другое ведро: 'user-upload-files'

Как я могу сделать это в Django 3.2.7, Python 3.9.7

Для справки, прямо сейчас я делаю:

from django.core.files.storage import default_storage
file = default_storage.open(filename, 'w')
file.write('testing'')
file.close()
import base64
import random
import string
import os

letters = string.ascii_lowercase
random_string = ''.join(random.choice(letters) for i in range(10))

env = os.environ.get("_ENVIROMENT", "development")
filename = f'test_upload_file_{env}_{random_string}.txt'
encoded_text = 'S2FtaWwgd2FzIGhlcmU='

decoded_plaintext = base64.b64decode(encoded_text)

# Perform upload to the default GS_BUCKET_NAME location
# from django.core.files.storage import default_storage
# file = default_storage.open(filename, 'w')
# file.write(decoded_plaintext)
# file.close()

f = open(filename, "wb")
f.write(decoded_plaintext)
f.close()

from google.cloud import storage
project_id = os.environ.get("GOOGLE_CLOUD_PROJECT", None)
bucket_name = os.environ.get("GS_BUCKET_NAME_FILE_UPLOADS", None)
client = storage.Client(project=project_id)
bucket = client.get_bucket(bucket_name)

filename_on_gcp = filename
blob = bucket.blob(filename_on_gcp)
with open(filename, "rb") as my_file:
    blob.upload_from_file(my_file)
Вернуться на верх