Невозможно загрузить большой файл из панели администратора django

У меня есть приложение на django. Я хочу загружать файлы из панели администратора этого приложения. После загрузки файлов они загружаются в облачное хранилище google и удаляются из приложения. Я получаю ошибку DATA_UPLOAD_MAX_MEMORY_SIZE, потому что размер моего файла около 1GB. Можете ли вы мне помочь?

Models.py:

class Document(AbstractBasicFTPSupportModel):
category = models.ForeignKey(
    to="SupportCategory", related_name="documents", on_delete=models.CASCADE, verbose_name=_("category"),
)
related_products = models.ManyToManyField(
    "product.Product", blank=True, related_name="documents", verbose_name=_("related products")
)
document_file = models.FileField(
    upload_to=save_support_file, verbose_name=_("document file"), null=True, blank=True, max_length=255,
)

class Meta:
    verbose_name = _("document")
    verbose_name_plural = _("documents")
    ordering = ["-created_at"]

def save(self, *args, **kwargs):
    category_name = self.category.name
    file_base_path = os.path.join(MEDIA_ROOT, str(self.document_file))
    file_basename, file_extension = os.path.splitext(os.path.basename(file_base_path))
    file_name = category_name+"/"+slugify(urlify(file_basename))+file_extension
    file_path = file_name.replace(category_name, "media")
    self.ftp_url = "https://files.example.com/"+file_name
    super().save(*args, **kwargs)
    upload_to_cloud(file_name, file_path, "test-data")

upload_to_cloud func:

def upload_to_cloud(blob_name, file_path, bucket_name):

try:
    bucket = client.get_bucket(bucket_name)
    blob = bucket.blob(blob_name)
    blob.upload_from_filename(file_path) # upload by file path
    logger.info("{} uploaded to {} successfully!".format(blob_name, bucket_name))
    delete_uploaded_file(file_path, blob_name)
    return True

except Exception as e:
    logger.error(e)
    return False

def delete_uploaded_file(file_path, blob_name):
    if os.path.isfile(file_path):
        os.remove(file_path)
        logging.info("{} is deleted from media folder.".format(blob_name))
Вернуться на верх