Laravel 个人数据导出
发布于 作者: Paul Redmond
上周,Freek Van der Herten 发布了一个名为 Laravel Personal Data Export 的 Spatie 包,可以帮助您在 Laravel 应用程序中创建包含个人数据的 zip 文件。
这个包让用户轻松下载包含所有个人数据的导出文件。此类导出文件由一个包含所有用户属性和相关信息的 zip 文件组成。
随着社交媒体和其他网络应用程序上隐私问题的日益突出,导出用户数据可能是您需要考虑的事情。如包的自述文件所示,您可以通过在用户模型中定义一个 `selectPersonalData` 方法来配置文件和数据导出。
// in your User model public function selectPersonalData(PersonalDataSelection $personalDataSelection) { $personalDataSelection ->add('user.json', ['name' => $this->name, 'email' => $this->email]) ->addFile(storage_path("avatars/{$this->id}.jpg"); ->addFile('other-user-data.xml', 's3');}
Laravel Personal Data Export 包提供了配置,用于设置个人数据对用户可用的天数,以及一些其他可自定义选项。
return [ /* * The disk where the exports will be stored by default. */ 'disk' => 'personal-data-exports', /* * The amount of days the exports will be available. */ 'delete_after_days' => 5, /* * Determines whether the user should be logged in to be able * to access the export. */ 'authentication_required' => true, /* * The mailable which will be sent to the user when the export * has been created. */ 'mailable' => \Spatie\PersonalDataExport\Mail\PersonalDataExportCreatedMail::class,];
这个包处理了所有与启动数据导出和完成数据导出相关任务的样板代码,并按以下顺序执行:
首先,当您在应用程序中派发一个 `CreatePersonalDataExportJob` 时,包会生成数据(默认情况下是一个排队作业)。
接下来,当作业运行时,导出数据会被压缩并复制到配置的磁盘上。最后,用户会收到一封包含下载链接的通知邮件。
导出过程中的几乎所有部分(如果不是全部)都可以自定义。您可以在 GitHub 上查看此包,地址为:spatie/laravel-personal-data-export。