django pyfilesystem集成

django-pyfs的Python项目详细描述


一个Django模块,它使用多种方法扩展PyFileSystem2 方便网络使用。具体来说,它扩展了pyfilesystem2 有两种方法:

fs.get_url(filename, timeout=0)

这将向资源返回一个外部可用的url。如果 超时>;0,URL可能在该时间段之后停止工作(在 秒)。详细信息取决于实现。在Amazon S3上,这是 一个安全的url,仅在该时间段内可用。对于静电 文件系统,URL是不安全的和永久的。

fs.expire(filename, seconds, days, expires=True)

这允许我们创建临时对象。我们的用例是 希望为用户生成.png图像的可视化效果。这个 这些图像的生存期是一个web请求,因此我们将它们设置为 几分钟后过期。另一个用例是备忘录。

请注意,过期文件不会自动删除。要移除它们, 调用expire_objects()。在我们的系统中,我们有一个cron任务 有段时间了。芹菜、手工清除等都是选择。

要将django pyfs配置为使用静态文件,请在 django设置:

DJFS = {‘type’ :‘osfs’,
‘directory_root’ : ‘djpyfs/static/djpyfs’, ‘url_root’ : ‘/static/djpyfs’}

在这里,directory\u root是文件的位置。url\u root是URL Web服务器配置为从其提供服务的位置的基础。

要在s3上使用文件,需要安装boto。然后,

DJFS = {‘type’ :‘s3fs’,
‘bucket’ : ‘my-bucket’, ‘prefix’ : ‘/pyfs/’ }

bucket是您的s3 bucket。前缀是可选的,并给出一个基 在那个桶里。

要获取文件系统,请致电:

def get_filesystem(namespace)

每个模块都应该传递一个唯一的命名空间。通常情况下 对应于文件系统中的子目录。

django pyfs接口设计为通用(非django 特定)PyFileSystem2的扩展。然而,具体的 实现是非常特定于django的。

接下来很好的步骤是:

  • 允许django存储充当pyfilesystem的后端
  • 允许django pyfs充当django存储的后端
  • 支持更多类型的pyfilesystems(特别是在内存中就更好了)

状态:此代码经过测试,在一系列设置中运行良好, 目前部署在edx.org上。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像