多个Django存储后端系统
我有一个使用Django的应用程序,它通过S3BotoStorage这个后端把上传的文件存储在亚马逊的S3上。但是在使用django-tastypie的网页API服务时,上传文件到S3的速度很慢。
这是因为请求需要先经过网页服务器,然后再传到亚马逊的S3存储。
所以我们想出了一个解决办法,让用户先把文件上传到网页服务器,然后通过django-celery任务把文件上传到亚马逊S3。这个方案已经完成并且可以正常工作。
但是之后我们想修改文件的URL,让它指向亚马逊S3的存储位置。
当我们尝试把file_field_obj.storage改成s3botostroage时,它又自动恢复成默认的文件存储,这种情况是可以预料的。
所以有没有办法在文件上传到S3后,修改Django模型中的FileField存储字段?这样在设置中,默认的FileStorage会指向FileSystemStorage,但如果文件已经在S3上,它们就会指向S3的存储位置。