如何将文件移动到另一个目录 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"
我正在开发一个新闻博客,您可以在其中向新闻添加任意数量的文件。对于存储属性的文件,我使用的是 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"