起因
由于老师项目的需要,要在服务器端存储生成的文件,用Python的File虽然能够实现,但是Django这么大的框架肯定支持文件存储的,所以我认真读了一下官方文档,把所得记下来。
相关链接
Django官方文档Stroage API
该Blog是基于官方文档和实践的记录,如有不对的地方请不吝赐教。
相关内容
Storage 类
Storage类提供了文件存储的标准化API,所有的默认操作都可以被继承的重写,Django提供的默认的FileSystemStorage 类也继承了Storage,如果想要定义的文件存储类(也叫存储系统),可以继承Stroage类并且重写相应的操作
Storage类定义的重要的API
accessed_time(name)
:返回上一次访问该文件的datetime
。如果无法获取该文件的最近一次访问的时间,将会抛出一个NotImplementedError
异常。create_time(name)
:返回创建该文件的时间,若无法获取则抛出NotImplementedError
异常。delete(name)
:删除对应名称的文件的,若存储系统不支持delete操作将会抛出NotImplementedError
异常。exists(name)
:返回指定名称的文件是否存在了存储系统中的Boolean值get_available_name(name, max_length=None)
:返回一个基于name参数的可以存入制定存储系统的名称,如果指定了max_length参数,返回的文件名的最大长度将不会超过该长度,如果没有找到唯一可用的文件存储名称,将会抛出一个SuspiciousFileOperation
错误,如果name文件名存在,将在name后加下划线和随机的7个字符返回。(这个搞不是很懂ÿ