在Django-Storages S3中移除默认文件名

4 投票
1 回答
2152 浏览
提问于 2025-04-16 22:48

我正在使用django-storages和亚马逊的S3来上传图片文件,代码是:

models.ImageField(upload_to="img=%Y-%m-%d", max_length=256, blank=True, null=True)

但是,当文件上传到S3后,文件名的后面会带上原来的文件名。我想知道怎么才能去掉这个原来的文件名,换成一个随机的哈希值,比如说?

1 个回答

3

可以给 upload_to 提供一个可调用的对象,而不是一个字符串。这个可调用的对象会接收到正在保存的实例和文件名,然后你需要返回一个完整的路径,包括文件名——这样你就可以选择不使用原来的文件名。不过,你需要自己用 datetime.date.today() 来调用 strftime

撰写回答