我正在使用Django Rest框架来制作API。与此同时,我正在使用Google Cloud Storage存储媒体文件。我有一些疑问:
如何使用django rest框架生成签名文件的URL?我一直在用相同的工具搜索网络,但无法获得清晰的图片。 Link
那么,如果我删除数据库中的文件,该文件也会自动从Google云存储中删除吗?
提前谢谢!
答案 0 :(得分:2)
如何使用django rest框架生成签名文件的URL?
django-storage模块将自动为您解决此问题。
您可以很容易地检查它,如果您已将资产上载到服务器,请检查模型的FileField字段中的url。 (在我的情况下,它称为raw
)
如果转到右侧,则将在URL中看到Signature参数。重新加载页面后,您会看到签名的值发生了变化,证明您实际上使用的是临时签名的URL。
默认到期时间为86400秒(1天),您可以使用GS_EXPIRATION
变量change。
那么,如果我删除数据库中的文件,该文件也会自动从Google云存储中删除吗?
默认情况下不是,但是您可以通过overriding模型的delete method
轻松添加此功能class MyModel(models.Model):
myfile = models.FileField(upload_to='filename/')
def delete(self, *args, **kwargs):
self.myfile.delete()
super(SynthesisArtifact, self).delete(*args, **kwargs)