Невозможно загрузить большой файл из панели администратора 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))