Drupal 关于导出/下载文件的心得记录

本文探讨了在Drupal中如何管理动态生成的导出文件,确保数据安全。Drupal区分了public和private文件存储,其中private文件无法直接访问。针对导出/下载文件,建议存放在private的子目录,并通过权限模块控制特定角色访问,同时利用系统自动删除临时文件的机制,以优化资源管理。这种方法兼顾了数据安全和易用性。
摘要由CSDN通过智能技术生成

最近做的功能多次涉及到导出功能,因为文件数据是动态的,所以每次导出都是新生成的文件。导出之后文件就不会再被用到。
解决这个问题的方法有很多,一般都是cron定时删除。而在Drupal中自带了这种机制。

Drupal把文件分为了public,private两种:
public下的文件是可以通过浏览器,知道路径后可访问的。
在private里边,无法直接访问,数据不会被看到。
同时,Drupal又把文件分为临时文件和永久文件:
临时文件指的是没有被任何地方引用的文件,这种文件在6h(默认,可配置)后自动删除。
(admin/content/files 在这个列表页可以看到文件的引用和状态信息。不论public还是private, 只要是没有地方引用的,status都是Temporary(临时文件))

在做导出功能的时候,为了数据的安全性,所以将系统生成的导出/下载文件指定到private下。但是private有没有访问权限;这时候可以在private下新增单独的文件夹专门存放导出/下载文件,然后使用pfdp module根据文件夹给某个角色分配权限。这样就可以让用户下载到private下的文件,同时又不影响其他文件的安全性。同时加了文件夹区分也方便后续的管理,如批量操作等等。

上述的方案最适合动态数据的单纯导出/下载功能。

PS1:临时目录并不在项目系统之中,而在项目所在的本地环境,比如本地电脑或docker容器下
PS2:这里的引用不包括手动添加的url等,需要是系统引用方式。

最后上文若有错误,请大佬不吝指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值