qbus / pdfclean
在上传时清理PDF文件中的元数据
1.0.1
2022-11-18 14:58 UTC
Requires
- typo3/cms-core: ^9.2 || ^10.1 || ^11.5
- typo3/cms-extbase: ^9.2 || ^10.1 || ^11.5
- typo3/cms-install: ^9.2 || ^10.1 || ^11.5
Requires (Dev)
- bk2k/extension-helper: ^1.0
- friendsofphp/php-cs-fixer: ^2.14
- overtrue/phplint: ^1.1
- roave/security-advisories: dev-latest
- typo3/testing-framework: ^2 || ^4.9 || ^5.0 || ^6.2
README
本扩展会清理上传到TYPO3系统中的任何PDF文件,但仅使用默认选项。请仔细阅读以下部分以获取所有详细信息。
重要事项
本扩展会移除上传的PDF文件中的所有元数据信息。它需要exiftool和qpdf命令行工具可用
# ddev ddev config --webimage-extra-packages=libimage-exiftool-perl,qpdf # Fedora (RPM) sudo dnf install perl-Image-ExifTool qpdf # Debian (dpkg) sudo apt install libimage-exiftool-perl qpdf
更新向导
运行更新向导大约每小时处理约10GB,因此请确保通过SSH/CLI运行。
首先备份
mkdir -p ../fileadmin_pdf_backup/ rsync -avz --include '*.pdf' --exclude '*.*' fileadmin/ ../fileadmin_pdf_backup/
然后运行向导
php -d memory_limit=1G -d error_log=syslog \
typo3/sysext/core/bin/typo3 upgrade:run 'Qbus\Pdfclean\Updates\CleanExistingPDF'
同时确保禁用那些挂钩到FAL操作并在此期间清除缓存的扩展,它们会导致速度大幅下降。(例如:fs_media_gallery
)
本扩展的功能
- 挂钩到FAL API:
ResourceFactory::addFile()
和ResourceFactory::replaceFile()
- 挂钩到FAL API:
ResourceStorage::setFileContents()
- 挂钩到DataHandler: 处理组/选择功能的文件
- 挂钩到
GeneralUtility::upload_copy_move()
- 挂钩到
GeneralUtility::upload_to_tempfile()
- 为现有PDF文件提供升级向导(请仔细阅读升级向导中的警告)
警告
本扩展只能在上述方式之一上传文件时才能对文件进行清理。例如,如果第三方扩展允许上传文件但不使用上述核心API,则PDF清理器将不会运行。
致谢
感谢TYPO3 GmbH及其t3g/svg-sanitizer扩展,该扩展为本扩展提供了技术基础。