如何将文件移动到另一个目录 django-storage s3

How to move files into another directory django-storage s3

我正在开发一个新闻博客,您可以在其中向新闻添加任意数量的文件。对于存储属性的文件,我使用的是 amazon s3 和 django-strorage。但是在我添加新闻更新视图之后,我在文件管理方面遇到了一些问题。

如您所见,这是我的文件模型

class FileStorage(models.Model):
    file        = models.FileField(upload_to=uploadFile)
    upload_path = models.TextField(blank=True, default='files/')

    def __str__(self):
        return f'Файл: {self.file.name.split("/")[-1]}'

主要问题是将文件移动到另一个目录后如何更新FileField?

这是我的文件移动脚本。

bucket = S3Boto3Storage()
from_path = bucket._normalize_name(bucket._clean_name(self.instance.file.name))
to_path = bucket._normalize_name(bucket._clean_name(self.cleaned_data['upload_path']))
    
result = bucket.connection.meta.client.copy_object(
    Bucket=bucket.bucket_name,
    CopySource=bucket.bucket_name + "/" + from_path,
    Key=to_path)
bucket.delete(from_path)

一切正常,但仅限于路径。 FileField 中的文件存储旧路径。 我怎样才能更新到?

屏幕有问题

如果需要,只需像这样更改文件“名称”参数:

file.name = "new file path"